opencv3.2将中文输出到图片上
2017-06-08 10:16
337 查看
opencv自带的putText函数无法输出utf8类型的字符,因此无法将中文打印到图片上。用这篇文章的freetype可以实现中文输出,但是需要将字符解码转码比较麻烦,而Pillow的Image函数输出中文则相对容易些,因此这里的做法是现将图片从从cv2格式转到PIL格式,加上中文后再转成cv2格式输出。
https://stackoverflow.com/questions/13576161/convert-opencv-image-into-pil-image-in-python-for-use-with-zbar-library
https://stackoverflow.com/questions/16373425/add-text-on-image-using-pil
1. 下载中文字体库
这里可以参考之前matplotlib输出中文的文章的第一部分。2. cv2转PIL
import Image, ImageDraw, ImageFont, cv2 cap = cv2.VideoCapture(0) # 从视频流中截取图片 ret, im = cap.read() cv2_im = cv2.cvtColor(im, cv2.COLOR_BGR2RGB) # cv2和PIL中颜色的hex码的储存顺序不同 pil_im = Image.fromarray(cv2_im)
3. PIL图片上打印中文
draw = ImageDraw.Draw(pil_im) # 括号中为需要打印的canvas,这里就是在图片上直接打印 font = ImageFont.truetype("simhei.ttf", 20, encoding="utf-8) # 第一个参数为字体文件路径,第二个为字体大小 draw.text((0, 0), "eg:打印在这里", (0, 0, 255), font=font) # 第一个参数为打印的坐标,第二个为打印的文本,第三个为字体颜色,第四个为字体
4. PIL图片转cv2
import numpy as np cv2_text_im = cv2.cvrColor(np.array(pil_im), cv2.COLOR_RGB2BGR)) cv2.imshow("Video", cv2_text_im)
参考
https://stackoverflow.com/questions/14134892/convert-image-from-pil-to-opencv-formathttps://stackoverflow.com/questions/13576161/convert-opencv-image-into-pil-image-in-python-for-use-with-zbar-library
https://stackoverflow.com/questions/16373425/add-text-on-image-using-pil
相关文章推荐
- OpenCV在图片中输出中文乱码解决方案
- OpenCV-Python在图片上输出中文
- Python OpenCV实现图片上输出中文
- VS2008 + Opencv2.1 读取图片像素输出至Excel文件
- VS2008 + Opencv2.1 读取图片像素输出至Excel文件
- python+freetype+opencv 图片中文(汉字)显示 详细图文教程和项目完整源代码
- OpenCV3.2+Qt5.8.0+Win10开发视频监控系统----(2)Qt之中文显示
- opencv 学习之 SVM / ANN 图片分类(OPENCV3.2)
- OPENCV(1)图片,视频读入,输出(highgui)
- php使用GD图像库绘制输出图像出现乱码问题和图片上输出中文出现乱码问题解决方法。
- OpenCV—图片写字(中文和英文)
- VS2017配置opencv3.2在MFC单文档中显示图片
- MFC & Gdi+ 实现在图片上写中文 (OpenCV原生不支持写中文本到图片,当然FreeType库也可实现)
- activiti5.19.0.2 task图片输出中文乱码
- 在开源龙芯1c开发板上用opencv检测图片中网球并输出圆心坐标和半径
- 解决opencv无法在图片上添加中文的问题。
- VS2008 + Opencv2.1 读取图片像素输出至Excel文件
- 用Qt5和OpenCV读取显示中文路径的图片
- 在opencv中实现中文输出
- c++ opencv 3.2 +Mfc VS2015窗体显示图片方法