目录
本文列出pil和opencv打印文字的方法:
1.pil部分:
安装方法:
pip install pil
会报错。
正确方法是:
pip install pillow
# 绘制文本
font = ImageFont.truetype("consola.ttf", 40, encoding="unic" ) # 设置字体
draw.text((200, 50), u'Hello World', 'fuchsia', font)
#坐标参数:第一个是x,第二是y
# -*- coding: UTF-8 -*-
import numpy as np
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
def draw_test():
# 生成深蓝色绘图画布
array = np.ndarray((480, 640, 3), np.uint8)
array[:, :, 0] = 0
array[:, :, 1] = 0
array[:, :, 2] = 100
image = Image.fromarray(array)
# # 创建绘制对象
draw = ImageDraw.Draw(image)
#
# # 绘制直线
# draw.line((20, 20, 150, 150), 'cyan')
#
# # 绘制矩形
# draw.rectangle((100, 200, 300, 400), 'black', 'red')
#
# # 绘制弧
# draw.arc((100, 200, 300, 400), 0, 180, 'yellow')
# draw.arc((100, 200, 300, 400), -90, 0, 'green')
#
# # 绘制弦
# draw.chord((350, 50, 500, 200), 0, 120, 'khaki', 'orange')
#
# # 绘制圆饼图
# draw.pieslice((350, 50, 500, 200), -150, -30, 'pink', 'crimson')
#
# # 绘制椭圆
# draw.ellipse((350, 300, 500, 400), 'yellowgreen', 'wheat')
# # 外切矩形为正方形时椭圆即为圆
# draw.ellipse((550, 50, 600, 100), 'seagreen', 'skyblue')
#
# # 绘制多边形
# draw.polygon((150, 180, 200, 180, 250, 120, 230, 90, 130, 100), 'olive', 'hotpink')
# 绘制文本
font = ImageFont.truetype("consola.ttf", 40, encoding="unic" ) # 设置字体
draw.text((200, 50), u'Hello World', 'fuchsia', font)
image.show()
if __name__ == '__main__':
draw_test()
2.opencv部分:
import cv2
cap = cv2.VideoCapture('data/zuqiu.mp4')
while cap.isOpened():
ret, frame = cap.read()
# 显示文字:图片,文字,位置,字体类型,字体大小,字体颜色,字体粗细
cv2.putText(frame, "foot ball", (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
cv2.putText(img, str(i), (123,456)), font, 2, (0,255,0), 3)
各参数依次是:图片,添加的文字,左上角坐标,字体,字体大小,颜色,字体粗细
其中字体可以选择
FONT_HERSHEY_SIMPLEX
Python: cv.FONT_HERSHEY_SIMPLEX
normal size sans-serif font
FONT_HERSHEY_PLAIN
Python: cv.FONT_HERSHEY_PLAIN
small size sans-serif font
FONT_HERSHEY_DUPLEX
Python: cv.FONT_HERSHEY_DUPLEX
normal size sans-serif font (more complex than FONT_HERSHEY_SIMPLEX)
FONT_HERSHEY_COMPLEX
Python: cv.FONT_HERSHEY_COMPLEX
normal size serif font
FONT_HERSHEY_TRIPLEX
Python: cv.FONT_HERSHEY_TRIPLEX
normal size serif font (more complex than FONT_HERSHEY_COMPLEX)
FONT_HERSHEY_COMPLEX_SMALL
Python: cv.FONT_HERSHEY_COMPLEX_SMALL
smaller version of FONT_HERSHEY_COMPLEX
FONT_HERSHEY_SCRIPT_SIMPLEX
Python: cv.FONT_HERSHEY_SCRIPT_SIMPLEX
hand-writing style font
FONT_HERSHEY_SCRIPT_COMPLEX
Python: cv.FONT_HERSHEY_SCRIPT_COMPLEX
more complex variant of FONT_HERSHEY_SCRIPT_SIMPLEX
FONT_ITALIC
Python: cv.FONT_ITALIC
flag for italic font
字体大小,数值越大,字体越大
字体粗细,越大越粗,数值表示描绘的线条占有的直径像素个数
————————————————
版权声明:本文为CSDN博主「AI专家」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42039090/article/details/80679935