1. 绘画基础
OpenCV 提供了绘制直线的函数cv2.line()、绘制矩形的函数cv2.rectangle()、绘制圆的函数cv2.circle()、绘制椭圆的函数cv2.ellipse()、绘制多边形的函数cv2.polylines()、在图像内添加文字的函数cv2.putText()等多种绘图函数。
这些绘图函数有一些共有的参数,主要用于设置源图像、颜色、线条属性等。下面对这些共有参数做简单的介绍。
img:在其上面绘制图形的载体图像(绘图的容器载体,也称为画布、画板)。
color:绘制形状的颜色。通常使用BGR 模型表示颜色,例如,(0, 255, 0)表示绿色。对
于灰度图像,只能传入灰度值。需要注意,颜色通道的顺序是BGR,而不是RGB。
thickness:线条的粗细。默认值是1,如果设置为-1,表示填充图形(即绘制的图形是实心的)。
lineType:线条的类型,默认是8 连接类型。lineType 参数的值及说明如表 所示。
shift:数据精度。该参数用来控制数值(例如圆心坐标等)的精度,一般情况下不需要设置。
1.1 绘制直线
img = cv2.line( img, pt1, pt2, color[, thickness[, lineType ]])
参数 img、color、thickness、lineType 的含义如前面的说明所示。
pt1 表示线段的第1 个点(起点)。
pt2 表示线段的第2 个点(终点)。
import numpy as np
import cv2
n = 300
img = np.zeros((n+1,n+1,3), np.uint8)
img = cv2.line(img,(0,0),(n,n),(255,0,0),3)
img = cv2.line(img,(0,100),(n,100),(0,255,0),1)
img = cv2.line(img,(100,0),(100,n),(0,0,255),6)
winname = 'Demo19.1'
cv2.namedWindow(winname)
cv2.imshow(winname, img)
cv2.waitKey(0)
cv2.destroyAllWindows()
1.2 绘制矩形
img = cv2.rectangle( img, pt1, pt2, color[, thickness[, lineType]] )
参数 img、color、thickness、lineType 的含义如前面的说明所示。
pt1 为矩形顶点。
pt2 为矩形中与pt1 对角的顶点。
import numpy as np
import cv2
n = 300
img = np.ones((n,n,3), np.uint8)*255
img = cv2.rectangle(img,(50,50),(n-100,n-50),(0,0,255),-1)
winname = 'Demo19.1'
cv2.namedWindow(winname)
cv2.imshow(winname, img)
cv2.waitKey(0)
cv2.destroyAllWindows()