• python 解决cv2绘制中文乱码


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

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

    大体思路:

    • OpenCV图片格式转换成PIL的图片格式;
    • 使用PIL绘制文字;
    • PIL图片格式转换成OpenCV的图片格式;

    具体实现:

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

    效果展示:
    在这里插入图片描述

  • 相关阅读:
    Mysql.linux登录数据库
    Linux.vim编辑器显示行号
    经济学-泰勒
    MyBatis.多条件排序
    Mysql.复选条件的查询
    前端.省市级联框
    前端.解决form-contral总是换行问题
    若依框架. 仿ThymeLeaf前端SelectDictLable方法
    excel中为什么不显示单引号
    python-爬虫(3)---lxml匹配css
  • 原文地址:https://www.cnblogs.com/gmhappy/p/11863947.html
Copyright © 2020-2023  润新知