【OpenCV 例程200篇】23. 图像添加中文文字(ImageDraw.Draw)

该博客介绍了如何在Python环境下利用OpenCV结合PIL库来实现在图像中添加中文文字。由于OpenCV本身不支持中文显示,文章提供了通过加载中文字体文件实现添加中文的方法,详细步骤包括读取图像、创建图像绘制对象、选择字体及大小、设置文字位置和颜色,并最终将处理后的图像显示出来。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

『youcans 的 OpenCV 例程200篇 - 总目录』


【youcans 的 OpenCV 例程200篇】23. 图像添加中文文字

  1. OpenCV 不支持显示中文字符,使用 cv2.putText() 时添加的文本字符串不能包含中文字符(包括中文标点符号)。
  2. 在图像中添加中文字符,可以使用 python+opencv+PIL 实现,或使用 python+opencv+freetype 实现。

具体方法详见扩展例程 1.32。

扩展例程:1.32 图像中添加中文文字

    # 1.32 图像中添加中文文字
    imgBGR = cv2.imread("../images/imgLena.tif")  # 读取彩色图像(BGR)

    from PIL import Image, ImageDraw, ImageFont
    if (isinstance(imgBGR, np.ndarray)):  # 判断是否 OpenCV 图片类型
        imgPIL = Image.fromarray(cv2.cvtColor(imgBGR, cv2.COLOR_BGR2RGB))
    text = "OpenCV2021, 中文字体"
    pos = (50, 20)  # (left, top),字符串左上角坐标
    color = (255, 255, 255)  # 字体颜色
    textSize = 40
    drawPIL = ImageDraw.Draw(imgPIL)
    fontText = ImageFont.truetype("font/simsun.ttc", textSize, encoding="utf-8")
    drawPIL.text(pos, text, color, font=fontText)
    imgPutText = cv2.cvtColor(np.asarray(imgPIL), cv2.COLOR_RGB2BGR)

    cv2.imshow("imgPutText", imgPutText)  # 显示叠加图像 imgAdd
    key = cv2.waitKey(0)  # 等待按键命令

在这里插入图片描述


(本节完)


版权声明:
youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/125112487)
Copyright 2022 youcans, XUPT
Crated:2021-11-18

【第2章:图像的数值运算】
21. 图像的叠加
22. 图像添加非中文文字
23. 图像添加中文文字

opencv编写 python 程序,按照如下步骤实现相应的功能: 1. 选择、读取图片 提示 1:选择图片时,请用对话框选择文件,参考如下代码: from tkinter import filedialog # 选择图像文件 root = tk.Tk() # 创建对象 root.withdraw() # 隐藏窗口 img_file = filedialog.askopenfilename(title=u'选择图片',defaultextension= '*.jpg', filetypes=[('图像文件',['*.bmp','*.jpg','*.png','*.tif']), ('所有 文件','*.*')]) if img_file is None: print('没有选择图像文件,程序结束!') exit() 提示 2:图像文件名要支持中文,此时不能使用 cv2.imread 读取图片。 2. 显示图片 3. 调整对比度和亮度:采用灰度映射函数,调整图片对比图,使亮暗对比度较为明显,白 色背景色更白。 4. 裁剪图片:在图片上用鼠标选择证件和签名的矩形区域,把所选择的矩形区域内的图像 保存到文件,文件名为:原文件名_裁剪后.jpg 提示:要在程序中捕捉鼠标事件,并在图上绘制矩形,参考例程 test3-10.py 5. 生成水印图像 (1) 在键盘上输入水印信息(一行文字(2) 生成水印图像(白底黑字或黑底白字),注意:水印图像的尺寸与裁剪后的图像必 须相同。 提示:参考例程 test3-8.py 6. 在裁剪后的证件和签名图片上添加水印,并保存为文件,文件名为:证件图片原文件名 _裁剪后_加水印.jpg,签名图片原文件名_裁剪后_加水印.png。 2 提示 1:添加水印要使用 cv2.addWeighted,参考例程 test2-14.py 提示2:保存文件时,要支持中文路径和文件名。如果文件名包含中文,不能用cv2.imwrite。 7. 对裁剪后的证件图片打码 (1) 对裁剪后的证件图片(未加水印)上,用鼠标选择要打码的敏感信息区域(如住址 或双眼等) (2) 把选择的敏感区域(矩形)内的灰度值设置为自己指定的值(如黑色、白色或其他 任意值) (3) 把打码后的图像保存到文件,文件名为:原文件名_裁剪后_打码后.jpg
03-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

youcans_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值