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
不错