思路: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
- 资源: 923
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- LCD1602电子时钟程序
- 西北太平洋热带气旋【灾害风险统计】及【登陆我国次数评估】数据集-1980-2023
- 全球干旱数据集【自校准帕尔默干旱程度指数scPDSI】-190101-202312-0.5x0.5
- 基于Python实现的VAE(变分自编码器)训练算法源代码+使用说明
- 全球干旱数据集【标准化降水蒸发指数SPEI-12】-190101-202312-0.5x0.5
- C语言小游戏-五子棋-详细代码可运行
- 全球干旱数据集【标准化降水蒸发指数SPEI-03】-190101-202312-0.5x0.5
- spring boot aop记录修改前后的值demo
- 全球干旱数据集【标准化降水蒸发指数SPEI-01】-190101-202312-0.5x0.5
- ActiveReports