python opencv cv2.putText()显示中文问题
本文章的所有代码和相关文章, 仅用于经验技术交流分享,禁止将相关技术应用到不正当途径,滥用技术产生的风险与本人无关。
本文章是自己学习的一些记录。
开始
在做项目想将自己的想法输出显示在视频上,但是发现输出上面的汉字是这个:
执行程序:
import cv2 cap = cv2.VideoCapture(0) font=cv2.FONT_ITALIC while(1): ret,frame = cap.read() # 展示图片 cv2.putText(frame,"劳资最帅", (123, 123), font, 2, (0, 255, 0), 3) cv2.imshow('capture',frame) if cv2.waitKey(1) & 0xFF == ord('q'): break #释放对象和销毁窗口 cap.release() cv2.destroyAllWindows()
显示出来的都是问号,????????????????
解决方案
通过查询资料,bug终究解决,主要是重新封装一个函数,直接调用即可,
在这里需要一个语言包,我放在网盘里面了
链接:https://pan.baidu.com/s/1uKxIauqNxSTTQ30x8Y5NHg
提取码:smwx
复制这段内容后打开百度网盘手机App,操作更方便哦
解压之后放在你的py文件同路径下即可。
封装函数调用
这里直接写成一个cv2AddChineseText()函数即可,然后直接调用
封装的函数为:
def cv2AddChineseText(img, text, position, textColor=(0, 255, 0), textSize=30): if (isinstance(img, np.ndarray)): # 判断是否OpenCV图片类型 img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) # 创建一个可以在给定图像上绘图的对象 draw = ImageDraw.Draw(img) # 字体的格式 fontStyle = ImageFont.truetype( "simsun.ttc", textSize, encoding="utf-8") # 绘制文本 draw.text(position, text, textColor, font=fontStyle) # 转换回OpenCV格式 return cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)
这里有我们刚才网盘的simsun.ttc文件
整体改进后的代码:
import cv2 from PIL import Image, ImageDraw, ImageFont import numpy as np cap = cv2.VideoCapture(0) # font=cv2.FONT_ITALIC def cv2AddChineseText(img, text, position, textColor=(0, 255, 0), textSize=30): if (isinstance(img, np.ndarray)): # 判断是否OpenCV图片类型 img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) # 创建一个可以在给定图像上绘图的对象 draw = ImageDraw.Draw(img) # 字体的格式 fontStyle = ImageFont.truetype( "simsun.ttc", textSize, encoding="utf-8") # 绘制文本 draw.text(position, text, textColor, font=fontStyle) # 转换回OpenCV格式 return cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR) while(1): ret,frame = cap.read() # 展示图片 frame=cv2AddChineseText(frame,"劳资最帅", (123, 123),(0, 255, 0), 30) cv2.imshow('capture',frame) if cv2.waitKey(1) & 0xFF == ord('q'): break #释放对象和销毁窗口 cap.release() cv2.destroyAllWindows()
————————————————
版权声明:本文为CSDN博主「hijacklei」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hijacklei/article/details/116010860
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了