OpenCV显示中文(python)

这篇具有很好参考价值的文章主要介绍了OpenCV显示中文(python)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

OpenCV添加文字的方法putText(…),添加英文是没有问题的,但如果你要添加中文就会出现“???”的乱码,需要特殊处理一下。

下文提供封装好的(代码)方法,供OpenCV添加中文使用。

效果预览

实现思路

使用PIL的图片绘制添加中文,可以指定字体文件,那么也就是说使用PIL可以实现中文的输出。

有思路之后,接下来的工作就简单了。

1.OpenCV图片格式转换成PIL的图片格式;
2.使用PIL绘制文字;
3.PIL图片格式转换成OpenCV的图片格式;

代码分解

OpenCV图片转换为PIL图片格式

img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))

使用PIL绘制文字

draw = ImageDraw.Draw(img)
fontText = ImageFont.truetype("font/simsun.ttc", textSize, encoding="utf-8")
draw.text((left, top), "文字内容", textColor, font=fontText)

字体文件为:simsun.ttc,Windows可以在C:\Windows\Fonts下面查找。
或者linux下:

wget -c https://files.cnblogs.com/files/xiaochina/simsun.zip

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

cv2.cvtColor(numpy.asarray(img), cv2.COLOR_RGB2BGR)

完整代码

封装好的完整方法

#coding=utf-8
#中文乱码处理
 
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)
    fontText = ImageFont.truetype(
        "font/simsun.ttc", textSize, encoding="utf-8")
    draw.text((left, top), text, textColor, font=fontText)
    return cv2.cvtColor(numpy.asarray(img), cv2.COLOR_RGB2BGR)

代码调用文章来源地址https://www.toymoban.com/news/detail-815579.html

img = cv2ImgAddText(img, "大家好,我是星爷", 140, 60, (255, 255, 0), 20)

到了这里,关于OpenCV显示中文(python)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • opencv图像中显示中文

    OpenCV 默认情况下不支持中文显示,因此我们需要使用 PIL 库来绘制中文,并将绘制的结果转换为 OpenCV 可以显示的格式。 首先,我们使用 PIL 库中的 ImageFont、ImageDraw 和 Image 类,以及 NumPy 和 OpenCV 库。你需要先安装这些库,然后将代码中的 fontpath 修改为你自己的字体文件路径

    2024年02月12日
    浏览(33)
  • 在OpenCV中显示中文汉字

    在使用OpenCV进行图像处理和计算机视觉任务时,有时候我们需要在图像或视频中显示中文汉字。然而,由于OpenCV本身是一个以英语为主的库,它默认不支持直接显示中文字符。但是,我们可以通过一些技巧和库来实现在OpenCV中显示中文汉字的功能。 首先,我们需要确保我们的

    2024年02月05日
    浏览(34)
  • openCV上图片显示中文c++

    准备材料: 1、中文汉字库 2、中文显示扩展类 cvxFont.h cvxFont.cpp 编译脚本: CmakeLists.txt 测试代码: main.cpp

    2024年02月16日
    浏览(33)
  • opencv显示图像中文标题乱码解决

    最终解决效果: 解决方法:通过指定编码返回字符串 完整示例代码: c++默认支持中文,直接调用imshow可显示 C++示例代码: 命令行执行python代码:

    2024年02月11日
    浏览(43)
  • 【GPT-4】GPT-4 是否已经显示出通用人工智能的迹象?——微软已经为 OpenAI 的 GPT-4 创建了一系列测试,它声称表明人工智能模型已经显示出通用智能的“火花”

    目录 GPT-4 是否已经显示出通用人工智能的迹象? Is GPT-4 already showing signs of artificial general intelligence?

    2024年02月05日
    浏览(49)
  • C++ OpenCV【解决putText不能显示中文】

            使用cv::putText写中文字符时输出结果为\\\"??????\\\"。。。。。。这怎么能忍?         python方法中可以将opencv图片转化为PIL,写中文之后再转回opencv格式。         C++方法中通常利用freetype库来实现,freetype打包的win32静态库可以在C#通过dll引用进行调用

    2024年02月13日
    浏览(43)
  • 人工智能 - A*算法解决迷宫问题 附源码和可视化显示

    写在最前,先附上可视化后的效果: 迷宫问题可以表述为:一个二维的网格,0 表示点可走,1 表示点 不可以走,点用(x,y)表示,寻找从某一个给定的起始单元格出发, 经由行相邻或列相邻的单元格(可以通过的),最终可以到达目标单元 格的、所走过的单元格序列。在任一

    2024年02月02日
    浏览(50)
  • 解决opencv, cv2.puttext函数无法显示中文字符

    背景: opencv内置的cv2.puttext函数不能显示中文字符,尝试了下列方法: (1)cv2.freetype。没有这个库; (2)opencv无法导入中文字体库; (3)卸载opencv-python,安装opencv-python-headless, opencv- contrib-python 方法: 使用PIL库作为中转 下载中文字体库https://github.com/StellarCN/scp_zh/blob/master/fonts/S

    2024年02月13日
    浏览(44)
  • python在人工智能中的应用,python人工智能100例子

    大家好,小编为大家解答python语言在人工智能领域的重要性的问题。很多人还不知道python在人工智能领域究竟做什么,现在让我们一起来看看吧! Source code download: 本文相关源码 本篇文章给大家谈谈python语言在人工智能领域的重要性,以及python在人工智能领域究竟做什么,希

    2024年02月21日
    浏览(53)
  • 为什么用python做人工智能,为什么人工智能用python

    大家好,给大家分享一下python人工智能为什么放到最后才学,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! Source code download: 本文相关源码 一、为何人工智能(AI)首选Python? 读完这篇文章你就知道了。我们看谷歌的TensorFlow基本上所有的代码都是C++和Python,

    2024年02月22日
    浏览(72)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包