代码和笔记
import cv2
import numpy as np
from PIL import ImageFont, ImageDraw, Image
"""
绘制各种图形
"""
img = np.zeros((480, 640, 3), np.uint8)
""""
line:线,rectangle:矩形
pt1, pt2为图形的起始位置,thickness粗细,lineType控制光滑程度,shift一般不加
line(img, pt1, pt2, color, thickness, lineType, shift),矩形(可用于捕捉人脸)类似
"""
"""
圆circle pt1(center), pt2(radius)这里变为圆心坐标和半径 注意OpenCV坐标行列和numpy中的相反
角度为逆时针
ellipse(img, center, axes, angel, startAngle, endAngle, color, thickness, lineType, shift)
椭圆 center圆心坐标, axes长短轴的一半 angel椭圆的角度 startAngle, endAngle从那个角度开始,到那个角度结束
"""
"""
绘制多边形polylines(img, pts, isClosed, color,thickness, lineType, shift )
pts 多边形点的坐标(一个列表, 三维(必须是int32位及以上的)), isClosed 是否闭合
填充多边形
"""
"""
绘制文本 putText(img, text, org, fontFace, fontScale, color, thickness, lineType, bottomLeftOrigin)
org文本左下角坐标 fontFace字体类型 fontScale大小
"""
cv2.putText(img, 'Hello OpenCv', (40, 40), cv2.FONT_HERSHEY_PLAIN, 5, [0, 0, 255])
img1 = np.full((200, 200, 3), fill_value=255, dtype=np.uint8)
font = ImageFont.truetype('./xx.ttc', 15)
img2 = Image.fromarray(img1)
draw = ImageDraw.Draw(img2)
draw.text((10, 150), '你好呀', font=font, fill=(0, 255, 0, 0))
img3 = np.array(img2)
cv2.imshow('img', img3)
cv2.imshow('draw', img)
cv2.waitKey(0)
cv2.destroyAllWindows()