zoukankan      html  css  js  c++  java
  • python 解决cv2绘制中文乱码问题

    因为使用cv2.putText() 只能显示英文字符,中文会出现乱码问题,

    因此使用PIL在图片上绘制添加中文,可以指定字体文件。

    大体思路:

    OpenCV图片格式转换成PIL的图片格式;

    使用PIL绘制文字;

    PIL图片格式转换成OpenCV的图片格式;

    具体实现:

    1. # coding=utf-8
    2. # cv2解决绘制中文乱码
    3. import cv2
    4. import numpy
    5. from PIL import Image, ImageDraw, ImageFont
    6.  
    7. def cv2ImgAddText(img, text, left, top, textColor=(0, 255, 0), textSize=20):
    8. if (isinstance(img, numpy.ndarray)): # 判断是否OpenCV图片类型
    9. img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    10. # 创建一个可以在给定图像上绘图的对象
    11. draw = ImageDraw.Draw(img)
    12. # 字体的格式
    13. fontStyle = ImageFont.truetype(
    14. "font/simsun.ttc", textSize, encoding="utf-8")
    15. # 绘制文本
    16. draw.text((left, top), text, textColor, font=fontStyle)
    17. # 转换回OpenCV格式
    18. return cv2.cvtColor(numpy.asarray(img), cv2.COLOR_RGB2BGR)
    19.  
    20.  
    21. if __name__ == '__main__':
    22. img = cv2ImgAddText(cv2.imread('img1.jpg'), "大家好,我是片天边的云彩", 10, 65, (0, 0 , 139), 20)
    23. cv2.imshow('show', img)
    24. if cv2.waitKey(100000) & 0xFF == ord('q'):
    25. cv2.destroyAllWindows()
    26.  

    效果展示:

    以上这篇python 解决cv2绘制中文乱码问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

    本文标题: python 解决cv2绘制中文乱码问题
    本文地址: http://www.cppcns.com/jiaoben/python/294616.html
  • 相关阅读:
    motion
    Owe Her
    优于自己的过去
    eclipse中开发js会卡,去掉.project中的validate即可
    项目经理的责任
    话不说满_话不说绝_要给自己留后路_留余地
    create table repo_folder_operate_log_bak as select * from repo_folder_operate_log;
    Introduction to Mathematical Thinking
    coursera 《现代操作系统》 -- 第十三周 期末考试
    coursera 《现代操作系统》 -- 第十一周 IO系统
  • 原文地址:https://www.cnblogs.com/wangsongbai/p/13369352.html
Copyright © 2011-2022 走看看