opencv中,给图片添加汉字的问题

背景,是需要在一个图片上进行画线,等操作,需要写入汉字,但OpenCV的cv2的putText不支持中文


查看资料发现2个方法:

    1,将cv2图片转为pil然后在添加上汉子后,在转成cv2格式((pil下载地址)https://www.lfd.uci.edu/~gohlke/pythonlibs/#pillow)

    2,freetype实现OpenCV2.x的中文输出

这里我使用了第一种方法来实现,就不写第二种方法了,想要看的可以去这里查看点击这里

第一种简单代码如下

from PIL import Image,ImageDraw,ImageFont
import cv2
import numpy as np
# 读取文件
pil_img = Image.open('1.jpg',)
# pil_img.show()
# 生成画笔
draw = ImageDraw.Draw(pil_img)
# 第一个参数是字体文件的路径,第二个是字体大小
font = ImageFont.truetype('simhei.ttf',50,encoding='utf-8')
# 第一个参数是文字的起始坐标,第二个需要输出的文字,第三个是字体颜色,第四个是字体类型
draw.text((700,450),'漂亮吗?',(0,255,255),font=font)


# PIL图片转cv2
cv2_text_im = cv2.cvtColor(np.array(pil_img),cv2.COLOR_RGB2BGR)
# 变得可以拉伸 winname 必须要一样,且设置可以拉伸在前面
cv2.namedWindow('tupian', cv2.WINDOW_NORMAL)
# 显示
cv2.imshow('tupian',cv2_text_im)


# 等待

cv2.waitKey(0)

opencv中,给图片添加汉字的问题_第1张图片

你可能感兴趣的:(机器学习,OpenCV,人工智能,机器学习实战)