1、我们可以通过【cvtColor()】先将图片处理成【COLOR_BGR2RGB】类型;
2、【Image.fromarray()】转成数组处理;
3、【ImageDraw.Draw(img)】绘制;
4、【ImageFont.truetype】字体格式化;
5、【draw.text()】绘制文字;
6、最后使用【cvtColor()】最终返回img图片类型。
示例代码:
from PIL import Image, ImageDraw, ImageFont
import numpy
...
img_show = Image.fromarray(cv2.cvtColor(img_show, cv2.COLOR_BGR2RGB))
# 创建一个可以在给定图像上绘图的对象
draw = ImageDraw.Draw(img_show)
# 字体的格式
fontStyle = ImageFont.truetype("simhei.ttf", 40, encoding="utf-8")
# 绘制文本
draw.text((800, 30), "位置感知系统", (0, 0, 255), font=fontStyle)
# 转换回OpenCV格式
img_show = cv2.cvtColor(numpy.array(img_show), cv2.COLOR_RGB2BGR)
注:simhei.ttf字体需提前下载。