>백엔드 개발 >파이썬 튜토리얼 >PILLOW 사진에 한자를 추가하는 예시에 대한 자세한 설명

PILLOW 사진에 한자를 추가하는 예시에 대한 자세한 설명

零下一度
零下一度원래의
2018-05-18 16:36:135485검색

Index opencv2나 3을 사용할 때 그림에 표시하고 싶은 경우 중국어 텍스트를 추가하려면 Freetype 라이브러리를 다운로드하여 컴파일한 후 opencv 라이브러리에 링크하여 중국어를 출력해야 합니다. 인터넷의 그림에 중국어를 삽입하는 방법에 대한 대부분의 튜토리얼은 여전히 ​​win+vs 구성 튜토리얼입니다. 저처럼 win 환경과 linux 환경을 갖고 있는 사람들에게는 코드를 동기화하는 것이 조금 번거로울 수 밖에 없습니다. 다행히도 대안이 있습니다. 아래 예는 베개입니다.

준비
  • 베개 설치
  • 이보다 더 쉬울 수는 없습니다. 다음과 같이 설치할 수 있습니다.
  • pip 설치 베개

    또는

    conda 설치 베개
  • 중국어를 지원하는 다음 글꼴 라이브러리
  • 검색 키워드: ttf 글꼴. 원하는 글꼴 스타일 라이브러리를 다운로드하세요. 파일 접미사는 일반적으로 ttf입니다. Microsoft Yahei 라이브러리를 다운로드했는데 파일 이름은 msyh.ttf
  • Example
  • 먼저 새 Python 파일인 draw_chinese.py를 만듭니다. ipython-notebook 스타일의 샘플 코드는 여기로 이동하세요

    1. Import library

  • import cv2from PIL import Image,ImageFont,ImageDrawfrom matplotlib.pyplot import imshowimport numpy as np

Image: 객체의 인스턴스는 이미지를 나타내며 이를 수행할 수 있습니다. 일부 크기 변환 및 아핀 변환 작업

ImageFont: 준비 단계에서 다운로드한 글꼴 라이브러리 파일을 로드하는 데 사용됩니다.

ImageDraw: 이미지 개체를 기반으로 다음과 같은 이미지를 생성합니다. 이미지 코드>에 사용됩니다. 인스턴스에 선을 그리고 텍스트를 붙여넣기 위한 개체입니다.

2. 그림 만들기

img = Image.new(mode="RGB",size=(400,150),color=(120,20,20))
#或者从numpy对象中创建也行。可以把opencv的图片转为numpy,通过numpy连接两个图像处理库。
#img = Image.fromarray(numpy_object)
img.show()

  1. 3. 글꼴 라이브러리 로드

    path_to_ttf = r'data/msyh.ttf'
    font = ImageFont.truetype(path_to_ttf, size=25)
    #size 确定一个汉字的大小
    pip install pillow
    或者
    conda install pillow
  2. 下一个支持中文的字体库
    搜索关键词:ttf 字体。 下载一个你喜欢的字体风格库,文件的后缀一般为ttf。我下载了一个微软雅黑库,文件名就是msyh.ttf

示例

首先新建一个python文件:draw_chinese.py。示例代码ipython-notebook风格请去这里
1.导入库

draw = ImageDraw.Draw( img )

Image:对象的实例代表一张图片,可以进行一些大小变换和仿射变换操作
ImageFont:用来加载准备阶段中下载的字体库文件
ImageDraw: 基于image对象,创建一个可以在Image4. 새 캔버스 만들기

draw.text(xy=(30,30),text='Hello,南墙已破!',font=font)
img.show()
#当然也可以把这个写好字的图片转换回numpy
#img2array = np.asanyarray(img)
6. 캔버스에서 원하는 대로 작업하기

PILLOW 사진에 한자를 추가하는 예시에 대한 자세한 설명

결론

이 방법을 사용하면 Freetype 라이브러리를 직접 다운로드하여 컴파일할 필요가 없으며 베개 설치도 매우 간단합니다. 작성된 코드는 python2와 python3 모두에서 사용할 수 있습니다. 크로스 플랫폼도 괜찮습니다. opencv가 중국어 글꼴을 기본적으로 지원하지 않는 문제를 Curve가 해결했다고 할 수 있습니다.

Pillow는 opencv의 일부 작업을 수행할 수 있는 라이브러리입니다. 지금까지 일반적으로 사용되지만 베개에는 없는 설정을 찾았습니다. 직사각형 프레임 가장자리의 너비를 설정할 수 없습니다. . 수동으로 구현해야 합니다. 원래 너비를 추가하거나 늘릴 때마다 한 픽셀의 좌표 위치를 줄이고 프레임을 반복하여 너비를 늘리는 효과를 얻습니다. Opencv에서는 너비 매개변수만 제공하면 됩니다.

위 내용은 PILLOW 사진에 한자를 추가하는 예시에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.