关于opencv无法接收中文的问题
'''
cv2.putText(
image, s, (x, y), cv2.FONT_HERSHEY_SIMPLEX, .5, (255, 255, 255), 1
)
'''
cv2中的putText函数无法接收中文的字符,如果打算在图中加入中文的描述,因此为了在图片中显示中文,需要把opencv格式的图转为Image类之后再加入中文字符.
s = '这是一个图片'
from PIL import Image,ImageDraw,ImageFont
image = cv2.imread('example.jpg')
cv2img = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # cv2和PIL中颜色的hex码的储存顺序不同
pilimg = Image.fromarray(cv2img)
draw = ImageDraw.Draw(pilimg)
font = ImageFont.truetype("SimSun.ttf", 35, encoding="utf-8")
draw.text((x, y), s, (255, 255, 255), font=font)
image = cv2.cvtColor(np.array(pilimg), cv2.COLOR_RGB2BGR)
这里使用Image的text的函数进行文本描述,ImageFont中第一个是使用的中文字体类型所在的路径,需要下载,后面是字号以及编码方式.
text函数中参数第一个是字的坐标,第二是加入的字符,第三个是字体的颜色,第四个是使用的字体,就是上面的ImageFont定义的字体字号.
网友评论