我们一般使用的PutText()放置的都是英文,但是有时候我们需要添加中文到图片上,这时候我们需要写一个函数。

1.先寻找一个中文字体

在这里插入图片描述
在windows中有这种字体,我们按上面那个目录查找

C:\Windows\Fonts

在这里插入图片描述

然后我们直接搜索宋体,
在这里插入图片描述
框起来的那个就是我们需要的,复制到树莓派就行。
我们查看属性也知道是我们需要的字体。
在这里插入图片描述

2.编写函数

#coding=utf-8
#中文乱码处理
 
import cv2
import numpy
from PIL import Image, ImageDraw, ImageFont
 
def cv2ImgAddText(img, text, left, top, textColor=(0, 255, 0), textSize=20):
    if (isinstance(img, numpy.ndarray)):  #判断是否OpenCV图片类型
        img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    draw = ImageDraw.Draw(img)
    fontText = ImageFont.truetype(
        "font/simsun.ttc", textSize, encoding="utf-8")
    draw.text((left, top), text, textColor, font=fontText)
return cv2.cvtColor(numpy.asarray(img), cv2.COLOR_RGB2BGR)

把这个函数放到程序中就可以用了。
注意

"font/simsun.ttc" 这个路径是存放这个字体文件的路径
GitHub 加速计划 / opencv31 / opencv
77.38 K
55.71 K
下载
OpenCV: 开源计算机视觉库
最近提交(Master分支:2 个月前 )
48668119 dnn: use dispatching for Winograd optimizations 4 天前
3dace76c flann: remove unused hdf5 header 4 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐