绘制文本
cv2.putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])
- img:要绘制文本的对象
- text:添加的文本信息
- org:文本在图片中左下角的坐标
- fontFace:字体
- FONT_HERSHEY_COMPLEX
- FONT_HERSHEY_COMPLEX_SMALL
- FONT_HERSHEY_DUPLEX
- FONT_HERSHEY_PLAIN
- FONT_HERSHEY_SCRIPT_COMPLEX
- FONT_HERSHEY_SCRIPT_SIMPLEX
- FONT_HERSHEY_SIMPLEX
- FONT_HERSHEY_TRIPLEX
- FONT_ITALIC
- fontScale:字体大小
- color:颜色
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
""" @Project :Opencv学习 @File :绘制文本及中文文本.py @IDE :PyCharm @Author :咋 @Date :2023/1/12 16:43 """ import cv2
cv2.namedWindow("image",cv2.WINDOW_NORMAL) cv2.resizeWindow("image",(640,480)) image = cv2.imread("image.jpg") cv2.putText(image,"Hallo,opencv",(200,500),cv2.FONT_HERSHEY_TRIPLEX,5,(0,0,0)) cv2.imshow("image",image) cv2.waitKey(0) cv2.destroyAllWindows()
|

中文文本
使用Pillow库,即PIL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
""" @Project :Opencv学习 @File :绘制文本及中文文本.py @IDE :PyCharm @Author :咋 @Date :2023/1/12 16:43 """ import cv2 import numpy as np
cv2.namedWindow("image",cv2.WINDOW_NORMAL) cv2.resizeWindow("image",(640,480)) image = cv2.imread("image.jpg")
cv2.putText(image,"Hallo,opencv",(200,500),cv2.FONT_HERSHEY_TRIPLEX,5,(0,0,0))
from PIL import ImageFont,ImageDraw,Image font = ImageFont.truetype("msyh.ttc",150)
pil_img = Image.fromarray(image)
draw = ImageDraw.Draw(pil_img)
draw.text((100,200),"PIL解决中文显示的问题",font=font,fill=(0,255,0,0))
image = np.array(pil_img) cv2.imshow("image",image) cv2.waitKey(0) cv2.destroyAllWindows()
|

添加中文封装成函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
""" @Project :Opencv学习 @File :添加中文封装成函数.py @IDE :PyCharm @Author :咋 @Date :2023/1/12 17:00 """ from PIL import ImageFont,ImageDraw,Image import numpy as np def add_chinese(image,text,font_size,font_color): """ :param image: 传入的图片对象 :param text: 需要添加的文本 :param font_size: 字体大小 :param font_color: 字体颜色,四位元组,代表着RGBA,如(0,255,0,0) :return: image """ font = ImageFont.truetype("msyh.ttc",font_size) pil_img = Image.fromarray(image) draw = ImageDraw.Draw(pil_img) draw.text((100, 200), text , font=font, fill=font_color) image = np.array(pil_img) return image
import cv2 cv2.namedWindow("image",cv2.WINDOW_NORMAL) cv2.resizeWindow("image",(640,480)) image = cv2.imread("image.jpg") image = add_chinese(image,"测试函数能否正常运行",150,(0,0,0,0)) cv2.imshow("image",image) cv2.waitKey(0) cv2.destroyAllWindows()
|
