当前位置: 首页 > 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的分层架构设计,将系统划分为驱动层、系统层和应用层, 每…...

Labelme版本不兼容报错?手把手教你修改源码和JSON文件(附3.18.0与4.5.6对比)

Labelme版本兼容性实战&#xff1a;从源码修改到JSON批量处理的完整指南 当你正专注于一个重要的数据标注项目&#xff0c;突然遭遇"Error opening file lineColor"的红色报错框&#xff0c;整个团队的标注进度被迫停滞——这种场景对于使用Labelme进行图像标注的开发…...

XXMI-Launcher:多游戏Mod管理平台的终极指南

XXMI-Launcher&#xff1a;多游戏Mod管理平台的终极指南 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher XXMI-Launcher是一款专为热门游戏设计的Mod管理平台&#xff0c;支持《原…...

第十三章:R 读取 txt、csv 表格数据

数据分析的第一步永远是读取数据。真实数据通常存储在 CSV、TXT 等文件中&#xff0c;本章将学习如何用 R 读取外部数据文件&#xff0c;以及如何把分析结果导出保存。 一、数据文件常见格式 格式扩展名特点CSV.csv逗号分隔&#xff0c;最通用的表格格式TXT.txt制表符或自定义…...

开源AI工作流框架:模块化设计、低代码实践与自动化场景构建

1. 项目概述&#xff1a;当AI工作流遇上开源协作最近在GitHub上闲逛&#xff0c;发现了一个挺有意思的项目&#xff0c;叫“kiki-ai-workflow”。光看这个名字&#xff0c;你可能会有点懵&#xff0c;“kiki”是谁&#xff1f;“AI工作流”又具体指什么&#xff1f;作为一个在自…...

【信息科学与工程学】【物理/化学科学和工程技术】知识体系 第四十篇 低空/高空领域中的力学知识 01

低空与高空(地球大气层内/地球大气层外)领域的核心力学知识。 编号:001 类别:流体力学 / 连续介质力学 领域:低空飞行器空气动力学 力学模型配方:Navier-Stokes方程组(可压缩/不可压缩) 数学分析:求解控制流体运动的质量、动量和能量守恒偏微分方程组。 定理/算法…...

2026年DevSecOps工具选型推荐:如何构建安全高效的研运体系

在2026年&#xff0c;软件交付的速度与质量安全已成为企业核心竞争力的关键。DevSecOps作为将安全能力左移并贯穿软件开发生命周期&#xff08;SDLC&#xff09;的实践方法论&#xff0c;其成功落地高度依赖于一套功能强大、易于集成且团队愿意采纳的工具链。面对市场上纷繁复杂…...

质子CT技术:原理、系统设计与临床应用

1. 质子CT技术概述&#xff1a;从原理到临床需求在放射治疗领域&#xff0c;质子治疗因其独特的布拉格峰(Bragg Peak)特性而备受关注。与传统X射线治疗相比&#xff0c;质子束在组织中沉积的能量分布具有明显的物理优势——在射程末端释放最大剂量后迅速衰减。这一特性使得肿瘤…...

从源头到治理:光伏并网逆变器直流分量抑制技术全解析

1. 光伏并网逆变器直流分量问题概述 第一次在光伏电站现场看到直流分量超标告警时&#xff0c;我盯着监控屏幕愣了半天。作为从业多年的光伏系统工程师&#xff0c;我深知这个看似微小的技术指标背后隐藏着多大的隐患。直流分量就像电网中的"隐形杀手"&#xff0c;它…...

保姆级教程:用STM32+ESP8266+微信小程序,5分钟搞定Onenet数据上传与设备控制

零基础实战&#xff1a;STM32ESP8266微信小程序极速对接Onenet全指南 在物联网技术快速普及的今天&#xff0c;许多嵌入式开发者都希望快速搭建一个完整的智能设备系统。本文将带你用最简单的方式&#xff0c;通过STM32微控制器、ESP8266 WiFi模块和微信小程序&#xff0c;实现…...

Linux实战:部署MinIO对象存储服务与Systemd开机自启配置详解

1. MinIO简介与环境准备 MinIO是一款高性能的分布式对象存储服务&#xff0c;完全兼容Amazon S3 API。它特别适合在私有云环境中部署&#xff0c;提供文件存储、备份和归档等功能。我在多个生产环境中使用过MinIO&#xff0c;它的轻量级设计和简单配置让我印象深刻。 首先需要准…...