python中cv2,等等如何修改为中文字体显示,这里以人脸表情识别中文标签为例

中文字体显示

  • 首先下载字体包
  • 部署字体包
  • 代码实现部分

想必大家在使用python过程中都会遇到,想要显示中文的时候,但是py基本上都是英文字体,下面我将给大家提供一个比较好的解决方案:

首先下载字体包

方法:
我使用的是思源黑体,思源黑体是 Adobe 与 Google 推出的一款开源字体。
下载地址:
官网:https://source.typekit.com/source-han-serif/cn/
在这里插入图片描述

Github地址:https://github.com/adobe-fonts/source-han-sans/tree/release/OTF/SimplifiedChinese
在这里插入图片描述
在这里插入图片描述

部署字体包

将你下载好的字体包SourceHanSansSC-Bold.otf移动到你需要用到的项目中
在这里插入图片描述

代码实现部分

导入模块

from PIL import ImageFont, ImageDraw

加载中文字体文件

font_path = "SourceHanSansSC-Bold.otf"
font = ImageFont.truetype(font_path, 30)

在画面中实现中文标签
这里我用了一个列表存放表情
EMOTIONS = [‘惊讶’, ‘恐惧’, ‘厌恶’, ‘开心’, ‘伤心’, ‘愤怒’, '中性 ']
在这里插入图片描述

            # 在视频帧上显示表情标签cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)pil_img = Image.fromarray(frame)draw = ImageDraw.Draw(pil_img)draw.text((x, y - 10), emotion_label, font=font, fill=(0, 255, 0))# 将PIL图像转换回OpenCV格式cv_img = np.array(pil_img)

可以看到我将cv图片转换为了Image图片

pil_img = Image.fromarray(frame)

cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2): 这行代码在视频帧frame上绘制一个矩形框,矩形框的左上角坐标是(x, y),右下角坐标是(x + w, y + h),颜色是蓝色(255, 0, 0),线宽是2像素。

pil_img = Image.fromarray(frame): 这行代码将OpenCV格式的图像frame转换为PIL格式的图像pil_img,以便后续在图像上绘制文本。

draw = ImageDraw.Draw(pil_img): 这行代码创建了一个ImageDraw对象draw,用于在PIL图像上进行绘制操作。

draw.text((x, y - 10), emotion_label, font=font, fill=(0, 255, 0)): 这行代码在PIL图像上的坐标(x, y - 10)处绘制文本emotion_label,使用指定的字体font和填充颜色(0, 255, 0)。

cv_img = np.array(pil_img): 这行代码将PIL格式的图像pil_img转换回OpenCV格式的图像cv_img,以便后续显示在窗口中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/703682.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【教学类-55-04】20240515图层顺序挑战(四格长条纸加黑色边框、4*4、7张,不重复5400张,16坐标点颜色哈希值去重、保留7色)

背景需求: 前文实现了7张色彩纸条加上黑色边框的需求。 【教学类-55-02】20240512图层顺序挑战(四格长条纸加黑色边框、4*4、7张 、43200张去掉非7色有23040张,哈希算法快速去重剩余1221张)-CSDN博客文章浏览阅读1k次&#xff0…

人工智能领域向量化技术加速多模态大模型训练与应用

目录 前言1、TextIn文档解析技术1.1、文档解析技术1.2、目前存在的问题1.2.1、不规则的文档信息示例 1.3、合合信息的文档解析1.3.1、合合信息的TextIn文档解析技术架构1.3.2、版面分析关键技术 Layout-engine1.3.3、文档树提取关键技术 Catalog-engine1.3.4、双栏1.3.5、非对称…

页面布局(H5基础)(上)

元素的显示模式 元素的显示模式 块级元素 页面中独占一行,不会与任何元素公用一行,从上到下排列 宽度默认是元素的高度,高度默认内容撑开 可以通过css设置宽高 行内元素 在页面中不独占一行,一行中不能容纳的行内元素&#x…

Python 全栈体系【四阶】(四十四)

第五章 深度学习 九、图像分割 3. 常用模型 3.4 DeepLab 系列 3.4.3 DeepLab v3(2017) 在DeepLab v3中,主要进行了以下改进: 使用更深的网络结构,以及串联不同膨胀率的空洞卷积,来获取更多的上下文信…

Java项目:基于ssm框架实现的房屋租售网站管理系统(房屋租赁和房屋出售一体)(B/S架构+源码+数据库+毕业论文+开题+任务书)

一、项目简介 本项目是一套基于ssm框架实现的房屋租售网站管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、…

品鉴中的艺术审美:如何将红酒品鉴提升为一种艺术体验

品鉴云仓酒庄雷盛红酒不仅仅是对酒本身的体验,更是一种艺术和审美的过程。将品鉴提升为一种艺术体验,需要我们用更细腻的感官、情感和认知去感受葡萄酒的魅力。 首先,我们要意识到品鉴葡萄酒是一种多感官的体验。除了基本的视觉、嗅觉和味觉…

python怎么安装matplotlib

1、登陆官方网址“https://pypi.org/project/matplotlib/#description”,下载安装包。 2、选择合适的安装包,下载下来。 3、将安装包放置到python交互命令窗口的当前目录下。 4、打开windows的命令行窗口,通过"pip install"这个命令…

CSRF 攻击实验:更改请求方式绕过验证

前言 CSRF(Cross-Site Request Forgery),也称为XSRF,是一种安全漏洞,攻击者通过欺骗用户在受信任网站上执行非自愿的操作,以实现未经授权的请求。 CSRF攻击利用了网站对用户提交的请求缺乏充分验证和防范…

【三家飞机制造商】

1.Boeing 波音 F-15战机 B-52轰炸机 阿帕奇攻击直升机 E-3 2 .Lockheed Martin 洛克希德马丁 F35 F22 F16 F117 C130 U2 3 Raytheon 雷神

uniapp 自定义uni.showToast,可以修改背景色,移动端(Andriod、ios)可用

如下样式 全局修改uni.showToast样式如下: .uni-toast {background: #FFFFFF !important;box-shadow: 0px 0px 10px 1px rgba(0,0,0,0.1) !important;border-radius: 10px 10px 10px 10px !important;color: #111111 !important; } 如上修改只在H5上生效&#xff…

【TypeScript】ts中的类型别名(Type)的介绍和使用

简言 类型别名(Type)的介绍和使用。 类型别名特别常用。 类型别名 类型别名就是用关键词type声明的类型: // Name类型 type Name string类型特别简单,他的作用就是定义一个类型的别名,这个类型可以是简单基础类型,也可以是复…

U盘中毒文件变乱码?揭秘原因与高效恢复方法!

在日常使用U盘的过程中,有时我们会遭遇到一个非常棘手的问题——文件突然出现乱码。当你满怀期待地插入U盘,准备打开某个重要文件时,却发现文件名或内容变成了一堆无法识别的字符,这种心情无异于晴天霹雳。乱码文件不仅影响了我们…