思路:1. 先把opencv读的图片转化为PIL的格式; 2. 用PIL在图片上写上汉字; 3. 把PIL格式的图片转化回opencv的格式。 直接上代码: # --*-- coding:utf-8 -*- import cv2 import numpy as np from PIL import Image,ImageDraw,ImageFont def draw_box_string(img, box, string): """ img: read by cv; box:[xmin, ymin, xmax, ymax]; 在Python中,添加汉字到图片上通常涉及到两个主要的图像处理库:OpenCV和PIL(Python Imaging Library)。OpenCV是一个强大的计算机视觉库,而PIL则主要用于图像处理,包括在图片上添加文本。以下是如何使用这两个库在图片上写汉字的详细步骤: 1. **读取图片**: 我们需要使用OpenCV的`cv2.imread()`函数读取图片。这将返回一个numpy数组,表示图片的像素数据。 ```python img_path = "test.jpg" img = cv2.imread(img_path) ``` 2. **转换图片格式**: OpenCV默认读取的图片是BGR格式,而PIL库期望的是RGB格式。因此,我们需要将图片从BGR转换为RGB。 ```python img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) ``` 3. **创建PIL图像**: 使用`Image.fromarray()`方法,将OpenCV的RGB图像转换为PIL图像。 ```python from PIL import Image img_pil = Image.fromarray(img) ``` 4. **创建绘制对象**: 在PIL图像上添加文本,我们需要创建一个`ImageDraw`对象,它提供了绘图的方法。 ```python from PIL import ImageDraw draw = ImageDraw.Draw(img_pil) ``` 5. **设置字体和大小**: 要写汉字,你需要一个支持中文的字体文件。这里我们使用`ImageFont.truetype()`来加载字体。确保你已经有一个包含中文字体的.ttf文件,例如“simhei.ttf”。 ```python from PIL import ImageFont font = ImageFont.truetype("simhei.ttf", 20, encoding="utf-8") ``` 6. **在图片上写字**: 使用`draw.text()`方法,在指定位置写入汉字。注意,这里的坐标是相对于左上角的,且文本会被写在指定点的上方。 ```python x, y, x1, y1 = box text_position = (x, y - 20) text_color = (0, 255, 0) draw.text(text_position, string, fill=text_color, font=font) ``` 7. **转换回OpenCV格式**: 写完汉字后,我们需要将PIL图像转回OpenCV的BGR格式。 ```python img = cv2.cvtColor(np.array(img_pil), cv2.COLOR_RGB2BGR) ``` 8. **保存结果**: 使用`cv2.imwrite()`保存修改后的图像。 ```python cv2.imwrite("output.jpg", img) ``` 总结一下,要在Python中使用OpenCV和PIL在图片上写汉字,你需要经过读取图片、格式转换、创建PIL图像、创建绘图对象、设置字体、写字、再转换回OpenCV格式以及保存结果这几个步骤。如果缺少中文字体,可以自行下载并确保正确引用。在实际应用中,可能还需要根据需求调整字体大小、颜色、位置等参数。

























- 粉丝: 7
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 人工智能时代财会人员职业风险分析(1).docx
- 第3章连续系统的数字仿真通用算法.ppt
- 2023年公司电子商务部个人总结公司个人总结.doc
- 计算机顶岗实习报告(15篇)(1).doc
- 计算机组成原理课件 (6).ppt
- 计算机技术在办公自动化中的应用探析(1).docx
- 计算机底层基础知识(1).docx
- 2021-2022收藏资料基于单片机的变频调速技术在矿用电机车上的应用.doc
- 2023年面向对象程序设计.doc
- 2023年全国工商系统信息化知识竞赛在线答题题库.doc
- TCL网络营销传播手册完成版.ppt
- 6.基于MQ+Redis实现高并发分流.pptx
- 2021-2022收藏的精品资料Cgljren首都经济贸易大学IT项目管理期末试卷B.doc
- 超详情的完整医院网络升级改造报价方案.docx
- CCW软件简单操作体验手册范本.doc
- 把爱传出去公益活动网络宣传方案-2011..ppt


