Index opencv2나 3을 사용할 때 그림에 표시하고 싶은 경우 중국어 텍스트를 추가하려면 Freetype 라이브러리를 다운로드하여 컴파일한 후 opencv 라이브러리에 링크하여 중국어를 출력해야 합니다. 인터넷의 그림에 중국어를 삽입하는 방법에 대한 대부분의 튜토리얼은 여전히 win+vs 구성 튜토리얼입니다. 저처럼 win 환경과 linux 환경을 갖고 있는 사람들에게는 코드를 동기화하는 것이 조금 번거로울 수 밖에 없습니다. 다행히도 대안이 있습니다. 아래 예는 베개입니다.
준비pip 설치 베개
또는
conda 설치 베개
중국어를 지원하는 다음 글꼴 라이브러리
ttf
입니다. Microsoft Yahei 라이브러리를 다운로드했는데 파일 이름은 msyh.ttf
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
: 이미지 개체를 기반으로 다음과 같은 이미지를 생성합니다. 이미지
코드>에 사용됩니다. 인스턴스에 선을 그리고 텍스트를 붙여넣기 위한 개체입니다. img = Image.new(mode="RGB",size=(400,150),color=(120,20,20)) #或者从numpy对象中创建也行。可以把opencv的图片转为numpy,通过numpy连接两个图像处理库。 #img = Image.fromarray(numpy_object) img.show()
3. 글꼴 라이브러리 로드
path_to_ttf = r'data/msyh.ttf' font = ImageFont.truetype(path_to_ttf, size=25) #size 确定一个汉字的大小
pip install pillow
conda install pillow
下一个支持中文的字体库
搜索关键词:ttf 字体。 下载一个你喜欢的字体风格库,文件的后缀一般为ttf
。我下载了一个微软雅黑库,文件名就是msyh.ttf
首先新建一个python文件:draw_chinese.py
。示例代码ipython-notebook风格请去这里
1.导入库
draw = ImageDraw.Draw( img )
Image
:对象的实例代表一张图片,可以进行一些大小变换和仿射变换操作ImageFont
:用来加载准备阶段中下载的字体库文件ImageDraw
: 基于image对象,创建一个可以在Image
4. 새 캔버스 만들기
draw.text(xy=(30,30),text='Hello,南墙已破!',font=font) img.show() #当然也可以把这个写好字的图片转换回numpy #img2array = np.asanyarray(img)6. 캔버스에서 원하는 대로 작업하기
결론
이 방법을 사용하면 Freetype 라이브러리를 직접 다운로드하여 컴파일할 필요가 없으며 베개 설치도 매우 간단합니다. 작성된 코드는 python2와 python3 모두에서 사용할 수 있습니다. 크로스 플랫폼도 괜찮습니다. opencv가 중국어 글꼴을 기본적으로 지원하지 않는 문제를 Curve가 해결했다고 할 수 있습니다.
Pillow는 opencv의 일부 작업을 수행할 수 있는 라이브러리입니다. 지금까지 일반적으로 사용되지만 베개에는 없는 설정을 찾았습니다. 직사각형 프레임 가장자리의 너비를 설정할 수 없습니다. . 수동으로 구현해야 합니다. 원래 너비를 추가하거나 늘릴 때마다 한 픽셀의 좌표 위치를 줄이고 프레임을 반복하여 너비를 늘리는 효과를 얻습니다. Opencv에서는 너비 매개변수만 제공하면 됩니다.위 내용은 PILLOW 사진에 한자를 추가하는 예시에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!