OpenCV显示中文的解决方案
收藏
OpenCV是不能直接显示中文的,即使指定了中文字体文件似乎也不行。不过好在有高手分享了结合PIL的解决方案,对于适用PaddleDetection又想标注框上显示中文标签的小伙伴们,无疑是个福音啊!
原始链接:https://blog.csdn.net/qq_41895190/article/details/90301459
我稍微改造了下,其中NotoSansCJKsc-Medium.otf就是在当前目录下面放好的中文字体文件了,可以随意替换成自己喜欢的中文字体。
from PIL import Image, ImageFont,ImageDraw from numpy import unicode def paint_chinese_opencv(im,chinese,pos,color): img_PIL = Image.fromarray(cv2.cvtColor(im,cv2.COLOR_BGR2RGB)) font = ImageFont.truetype('NotoSansCJKsc-Medium.otf',25) fillColor = color #(255,0,0) position = pos #(100,100) if not isinstance(chinese,unicode): chinese = chinese.decode('utf-8') draw = ImageDraw.Draw(img_PIL) draw.text(position,chinese,font=font,fill=fillColor) img = cv2.cvtColor(np.asarray(img_PIL),cv2.COLOR_RGB2BGR) return img plt.imshow(paint_chinese_opencv(img,'显示中文',(100,100),(255,255,0)))
0
收藏
请登录后评论
为啥呀?
opencv会报什么拉丁字符错误
奥,果然。
复现了嘛?
OpenCV
不错