当前位置: 首页 > news >正文

Python+OpenCV系列:绘制中文的方法

绘制中文的方法

      • 方法一:使用Pillow(PIL)与OpenCV结合
      • 方法二:使用Matplotlib与OpenCV结合
      • 方法三:结合第三方库OpenCV-ZH
      • 注意事项

在Python中,使用OpenCV绘制中文需要处理字体加载问题,因为OpenCV默认不支持中文。以下是实现方法的详细步骤:


方法一:使用Pillow(PIL)与OpenCV结合

  1. 安装Pillow
    确保安装了Pillow库:

    pip install pillow
    
  2. 步骤

    • 使用Pillow加载中文字体文件(如.ttf)。
    • 在图像上绘制中文内容。
    • 将绘制结果转换为OpenCV格式继续处理。
  3. 示例代码

    import cv2
    from PIL import Image, ImageDraw, ImageFont
    import numpy as np# 创建一个空白图像
    img = np.zeros((300, 600, 3), dtype=np.uint8)# 转换为Pillow图像
    img_pil = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))# 加载字体
    font = ImageFont.truetype("simsun.ttc", 32)  # 替换为实际的字体路径# 在Pillow图像上绘制中文
    draw = ImageDraw.Draw(img_pil)
    draw.text((50, 100), "OpenCV支持中文绘制!", font=font, fill=(255, 255, 255))# 转换回OpenCV格式
    img = cv2.cvtColor(np.array(img_pil), cv2.COLOR_RGB2BGR)# 显示图像
    cv2.imshow("Chinese Text", img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

方法二:使用Matplotlib与OpenCV结合

  1. 安装Matplotlib
    确保安装了Matplotlib库:

    pip install matplotlib
    
  2. 步骤

    • 使用Matplotlib的中文字体支持生成图像。
    • 将生成的图像与OpenCV结合显示。
  3. 示例代码

    import cv2
    import matplotlib.pyplot as plt
    import numpy as np# 创建Matplotlib图像
    plt.figure(figsize=(6, 3))
    plt.text(0.5, 0.5, "OpenCV绘制中文示例", fontsize=24, ha='center', va='center', fontname='SimSun', color="white")
    plt.axis('off')
    plt.savefig("temp_image.png", bbox_inches='tight', pad_inches=0, dpi=100)# 加载图像并在OpenCV中显示
    img = cv2.imread("temp_image.png")
    cv2.imshow("Chinese Text with Matplotlib", img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

方法三:结合第三方库OpenCV-ZH

  • 使用专门为OpenCV开发的中文绘制扩展库,如opencv-zh
  • 该库封装了中文支持的功能,简单易用。

注意事项

  1. 字体路径:确保正确指定中文字体文件路径(如SimSun.ttcMicrosoft YaHei等)。
  2. 颜色与样式:Pillow和Matplotlib允许灵活设置文字颜色和样式。
  3. 性能需求:方法一和方法二适用于大部分需求,但对实时性较高的应用可能稍显不足。

通过以上方法,您可以在Python的OpenCV环境中轻松实现中文文字的绘制!

相关文章:

Python+OpenCV系列:绘制中文的方法

绘制中文的方法 方法一:使用Pillow(PIL)与OpenCV结合方法二:使用Matplotlib与OpenCV结合方法三:结合第三方库OpenCV-ZH注意事项 在Python中,使用OpenCV绘制中文需要处理字体加载问题,因为OpenCV…...

精品推荐 | StarLighter 1×dsDNA HS Assay Kit

关键词:核酸浓度测定,核酸定量检测试剂盒,dsDNA浓度测定,dsDNA定量检测 产品简介 StarLighter 1dsDNA HS Assay Kit是一种快速简便的双链DNA(dsDNA)荧光定量检测试剂盒,具有极高的检测灵敏度&…...

挑战用React封装100个组件【010】

Hello,大家好,今天我挑战的组件是这样的! 今天这个组件是一个打卡成功,或者获得徽章后的组件。点击按钮后,会弹出礼花。项目中的勋章是我通过AI生成的,还是很厉害的哈!稍微抠图直接使用。最后面…...

burp suite 5

声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…...

锐捷Web认证

文章目录 Web认证二代 Web 认证配置 🏡作者主页:点击! 🤖Datacom专栏:点击! ⏰️创作时间:2024年12月6日11点40分 Web认证 Portal 认证、Web认证 Web认证的介绍 Web 认证使用浏览器进行身份验…...

【开源免费】基于Vue和SpringBoot的服装生产管理系统(附论文)

博主说明:本文项目编号 T 066 ,文末自助获取源码 \color{red}{T066,文末自助获取源码} T066,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…...

每日速记10道MySQL面试题16

其他资料 每日速记10道java面试题01-CSDN博客 每日速记10道java面试题02-CSDN博客 每日速记10道java面试题03-CSDN博客 每日速记10道java面试题04-CSDN博客 每日速记10道java面试题05-CSDN博客 每日速记10道java面试题06-CSDN博客 每日速记10道java面试题07-CSDN博客 每…...

云计算考试题

1、与SaaS不同的,这种“云”计算形式把开发环境或者运行平台也作为一种服务给用户提供。(B) A、软件即服务 B、基于平台服务 C、基于WEB服务 D、基于管理服务 2、云计算是对(D)技术的发展与运用 A、并行计算 B、网格计算 C、分布式计算 D、三个选项都是 3、Amazon.com公司…...

无人机理论考试合格证书获取

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 轻型民用无人驾驶航空器安全操控理论培训合格证明 前言无人机特性和应用场景 前言 无人机(Drone)是一种非常受欢迎的技术产品,广泛应用于…...

AcWing 3496. 特殊年份

文章目录 前言代码思路 前言 写简单题没啥。反正都是要写的&#xff0c;先把能拿到的分数拿了&#xff0c;之后有机会再去啃一啃硬骨头。啃不下来就算了。 代码 #include<bits/stdc.h> using namespace std; char a1[10],a2[10],a3[10],a4[10],a5[10]; int main(){cin…...

YOLOv8模型改进 第二十讲 添加三重注意力机制Triplet Attention 提升小目标/遮挡目标

本文这次分享的是三重注意力机制Triplet Attention。现在注意力机制在计算机视觉任务中被广泛研究和应用&#xff0c;如 Squeeze-and-Excitation Networks (SENet)、Convolutional Block Attention Module (CBAM) 等。然而&#xff0c;这些方法存在一些局限性&#xff0c;例如需…...

Linux絮絮叨(三) Ubuntu桌面版添加中文拼音输入法

步骤很详细&#xff0c;直接上教程 一. 配置安装简体拼音输入法 #安装相应的平台支持包 sudo apt install ibus-gtk ibus-gtk3# 安装简体拼音输入法 sudo apt install ibus-pinyin安装完成如果下面的步骤找不到对应输入法可以重启一下&#xff0c;一般不需要 二. 添加简体拼音…...

Ungoogled Chromium127编译指南 Windows篇 - 安装Visual Studio 2022(六)

1. 引言 在编译Ungoogled Chromium之前&#xff0c;正确安装和配置Visual Studio 2022是至关重要的一步。作为主要的开发环境&#xff0c;Visual Studio不仅提供了必要的编译工具&#xff0c;还包含了大量构建过程中需要的组件和库。本文将详细介绍如何在Windows系统上安装和配…...

Kubernetes(K8s)

头条&#xff1a;参考资料 Kubernetes 入门指南&#xff1a;从基础到实践_kubernetes 从入门到实践-CSDN博客 Kubernetes&#xff08;k8s&#xff09;与docker的区别 Docker、Kubernetes之间的区别_docker和kubernetes区别-CSDN博客 Docker部署SpringBoot项目&#xff08;镜…...

证明切平面过定点的曲面是锥面

目录 证明&#xff1a;切平面过定点的曲面是锥面. 证明&#xff1a;切平面过定点的曲面是锥面. 证明&#xff1a; 方法一&#xff1a; 设曲面 S : r r ( u , v ) S:\mathbf{r}\mathbf{r}(u,v) S:rr(u,v)的切平面过定点 P 0 P_0 P0​,其位置向量为 p 0 . \mathbf{p}_0. p0​…...

python中数组怎么转换为字符串

1、数组转字符串 #方法1 arr [a,b] str1 .join(arr)#方法2 arr [1,2,3] #str .join(str(i) for i in arr)#此处str命名与str函数冲突&#xff01; str2 .join(str(i) for i in arr) 2、字符串转数组 #方法一 str_x avfg st_list list(str_x) #使用list()#方法二 list_s…...

Linux 查看运行了哪些服务

1、service --status-all service --status-all输出: ● fdfs_storaged.service - LSB: FastDFS storage serverLoaded: loaded (/etc/rc.d/init.d/fdfs_storaged; bad; vendor preset: disabled)Active: active (running) since Thu 2019-03-28 09:53:35 CST; 5 years 8 mon…...

WPS EXCEL 使用 WPS宏编辑器 写32位十六进制数据转换为浮点小数的公式。

新建EXCLE文件 另存为xlsm格式的文件 先打开WPS的开发工具中的宏编辑器 宏编辑器编译环境 在工作区添加函数并编译&#xff0c;如果有错误会有弹窗提示&#xff0c;如果没有错误则不会弹 函数名字 ”HEXTOFLOAT“ 可以自己修改。 function HEXTOFLOAT(hex) { // 将十六…...

SpringMVC ——(1)

1.SpringMVC请求流程 1.1 SpringMVC请求处理流程分析 Spring MVC框架也是⼀个基于请求驱动的Web框架&#xff0c;并且使⽤了前端控制器模式&#xff08;是⽤来提供⼀个集中的请求处理机制&#xff0c;所有的请求都将由⼀个单⼀的处理程序处理来进⾏设计&#xff0c;再根据请求…...

嵌入式中防linux的通用MCU系统

​大家好,今天分享一个仿linux分层架构实现的mcu通用系统,该项目的创建方便芯片级切换以及多产品线开发。 《一个基于分层架构实现的MCU通用系统》 项目整体框图 项目亮点 分层架构,清晰高效:usal_mcu采用仿Linux的分层架构设计,将系统划分为驱动层、系统层和应用层, 每…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

在 Spring Boot 中使用 JSP

jsp&#xff1f; 好多年没用了。重新整一下 还费了点时间&#xff0c;记录一下。 项目结构&#xff1a; pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...