这些绘图函数需要设置下面这些参数
• img:你想要绘制图形的那幅图像。
• color:形状的颜色。以 RGB 为例,需要传入一个元组,例如: (255,0,0 )代表蓝色。对于灰度图只需要传入灰度值。
• thickness:线条的粗细。如果给一个闭合图形设置为 -1,那么这个图形就会被填充。默认值是 1.
• linetype:线条的类型,8 连接,抗锯齿等。默认情况是 8 连接。cv2.LINE_AA为抗锯齿,这样看起来会非常平滑。
画线
绘制一条蓝色的直线,需要知道起点和终点
1 import numpy as np
2 import cv2
3
4 # Create a black image
5 img=np.zeros((512,512,3), np.uint8)
6
7 # Draw a diagonal blue line with thickness of 5 px
8 cv2.line(img,(0,0),(511,511),(255,0,0),5)
画矩形
绘制一个绿色的矩形,要给定左上角和右下角
cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)
画圆
需要指定圆形的中心点坐标和半径大小。我们在上面的矩
形中画一个圆。
cv2.circle(img,(447,63), 63, (0,0,255), -1)
画椭圆
一个参数是中心点的位置坐标。下一个参数是长轴和短轴的长度。椭圆沿逆时针方向旋转的角度。椭圆弧顺时针方向起始的角度和结束角度,如果是 0 很 360,就是整个椭圆。
cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1)
cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness, lineType, shift)
axes:椭圆尺寸(即长短轴)
angle:椭圆旋转角度(顺时针方向)
startAngle:椭圆弧的起始角度(顺时针方向)
endAngle:椭圆弧的终止角度(例如,绘制整个椭圆是0,360,绘制下半椭圆就是0,180)
画多边形
cv2.polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]])
要绘制多边形,首先需要顶点坐标.将这些点转换为ROWSx1x2形状的数组,其中ROWS是顶点数
绘制四个顶点的黄色多边形
pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts = pts.reshape((-1,1,2))
cv2.polylines(img,[pts],True,(0,255,255))
在图片上添加字
要在图片上绘制文字,你需要设置下列参数:
• 你要绘制的文字
• 你要绘制的位置
• 字体类型(通过查看 cv2.putText() 的文档找到支持的字体)
• 字体的大小
• 文字的一般属性如颜色,粗细,线条的类型等。
在img上绘制白色的OpenCV
font=cv2.FONT_HERSHEY_SIMPLEX
2 cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2)