方式1:cv.putText(不支持中文)
#coding=utf-8
import cv2 as cv
# 当前目录读取一张图片
img = cv.imread('chloe.jpg')
# 在图片上添加文字(该方法添加的中文会变为???)
# 参数:图像,文字内容, 坐标 ,字体,大小,颜色,字体厚度
cv.putText(img, 'Chloe 克洛伊', (100, 100), cv.FONT_HERSHEY_COMPLEX, 2.0, (100, 200, 200), 5)
# 保存图片到当前目录
cv.imwrite('temp/chloe.jpg', img)
# 显示图片
cv.imshow("show Chloe", img)
cv.waitKey(0)
原图
写入文字后的图片(汉字变为???)
方式2:使用PIL(支持中文)
#coding=utf-8
import cv2 as cv
import numpy as np
from PIL import Image, ImageDraw, ImageFont
# 当前目录读取一张图片
img = cv.imread('chloe.jpg')
# 图片转换(cv2 -> pil)
cv2img = cv.cvtColor(img, cv.COLOR_BGR2RGB)
pilimg = Image.fromarray(cv2img)
# 在图片上添加文字(支持中文)
draw = ImageDraw.Draw(pilimg)
font = ImageFont.truetype("simhei.ttf", 50, encoding="utf-8")
draw.text((100, 25), "Chloe 克洛伊", (255, 255, 255), font=font)
# 图片转换(pil -> cv2)
cv2img2 = cv.cvtColor(np.array(pilimg), cv.COLOR_RGB2BGR)
# 保存图片到当前目录
cv.imwrite('temp/chloe2.jpg', cv2img2)
# 显示图片
cv.imshow("show Chloe2", cv2img2)
cv.waitKey(0)
原图
添加文字后的图片(支持添加汉字)
truytype 字体下载网址:https://fontsnetwork.com/category/truetype/
如果字体下载安装后无法使用,可以将字体文件拷贝到python程序所在目录直接使用
网友评论