函数:
基本图像绘制:
主要参数:
img:源图像
color:需要传入的颜色
thickness:线条的粗细,默认值是1,thickness为-1表示填充内部颜色。
linetype:线条的类型,包括8 连接、抗锯齿等。默认情况是 8 连接。
lineType=cv2.LINE_AA表示抗锯齿,这样看起来会非常平滑。
1.直线: cv2.line
line(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
2.矩形: cv2.rectangle
rectangle(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
3.圆: cv2.circle
circle(img, center, radius, color, thickness=None, lineType=None, shift=None)
4.椭圆: cv2.ellipse
ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness=None, lineType=None, shift=None)
angle表示椭圆顺时针旋转的角度
5.多边形: cv2.polylines
polylines(img, pts, isClosed, color, thickness=None, lineType=None, shift=None)
isClosed表示收尾是否相连
给多边形填充颜色:
fillPoly(img, pts, color, lineType=None, shift=None, offset=None)
6.写文字: cv2.putText
putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)
org表示字体的左下角坐标,
fontFace表示字体类型,示例: fontFace=cv2.FONT_HERSHEY_SIMPLEX
fontScale表示字体大小,示例: fontScale=1
lineType=cv2.LINE_AA表示抗锯齿
示例:
import cv2
import numpy
img = cv2.imread("image/1.jpg")
# 直线
cv2.line(img, (100, 20), (250, 120), color=(0, 0, 255), thickness=2)
# 矩形
cv2.rectangle(img, (100, 20), (250, 120), color=(0, 255, 0), thickness=2)
# 圆
cv2.circle(img, (150, 150), 60, color=(255, 0, 0), thickness=2)
# 椭圆: angle=45表示椭圆顺时针旋转45度
cv2.ellipse(img, (50, 250), (50, 30), 45, 0, 360, color=(255, 255, 0), thickness=2)
cv2.ellipse(img, (150, 250), (50, 30), 45, 0, 90, color=(0, 255, 255), thickness=-1)
# 多边形: isClosed=True表示首位相连(闭合)
pts = numpy.array([[10, 5], [50, 10], [70, 20], [20, 30]], dtype=numpy.int32)
cv2.polylines(img, [pts], isClosed=True, color=(255, 0, 255), thickness=2)
# 给多边形填充颜色
cv2.fillPoly(img, [pts], color=(0, 0, 0))
# 写字: (0, 350)是字体左下角下标,lineType=cv2.LINE_AA表示抗锯齿
cv2.putText(img, "Hello World", (0, 350), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), thickness=2)
cv2.putText(img, "Hello World", (0, 400), cv2.FONT_HERSHEY_COMPLEX, 1, (0, 0, 255), thickness=2, lineType=cv2.LINE_AA)
cv2.imshow("image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
结果如下:
网友评论