用opencv学习绘制不同的几何图形
本节函数常见参数
img :要绘制形状的图像
color :形状颜色。为BGR,作为一个元组传
thickness :线或圆的厚度
如果- 1是通过封闭的数字,如圆,它将填补形状。默认厚度= 1
lineType :Type of line, whether 8-connected, anti-aliased line etc
要画一条线,你需要通过线的开始和结束坐标。我们将创建一个黑色的图像,并绘制一条蓝色线,从左上角到右下角。
示例:
#创建一个长宽512的黑色图片
img=np.zeros((512,512,3),np.uint8)
#画一条坐标(0,0)到(511,511)的蓝色直线,厚度为5
img=cv2.line(img,(0,0),(511,511),(255,0,0),5)
若要绘制矩形,则需要矩形的左上角和右下角。这次我们将在图像的右上角画一个绿色矩形。
示例:
img=np.zeros((512,512,3),np.uint8)
img=cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)
画圆,你需要它的中心坐标和半径。我们将在上面绘制的矩形内画一个圆。
示例:
img=cv2.circle(img,(447,63),63,(0,0,255),-1)
为了绘制椭圆,我们需要传递几个参数。一个参数是中心位置(x,y)。下一个参数是轴长度(长轴长度,短轴长度)。角是逆时针方向椭圆的旋转角度。startangle和EndAngle表示开始和椭圆弧顺时针方向从长轴测量结束。即给予值0和360给出完整的椭圆。
示例:
#参数依次是img,中心坐标,长宽轴长,旋转角度,开始角度,结束角度,颜色,填充
img=cv2.ellipse(img,(256,256),(100,50),0,0,360,255,-1)
要绘制多边形,首先需要顶点坐标。让那些分为形状rowsx1x2哪里行数量的顶点数组,它应该是int32类型。在这里,我们画一个小多边形的四个顶点的黄色。
示例:
img=np.zeros((512,512,3),np.uint8)
pts=np.array([[10,5],[20,30],[70,20],[50,10]],dtype=np.int32)
pts=pts.reshape((-1,1,2))
img=cv2.polylines(img,[pts],True,(0,255,255))
#如果第三个参数是False,你会得到一个折线连接所有的点,而不是一个封闭的形状。
要将文本放入图像,需要指定以下内容。
* 要写入的文本数据
* 位置坐标
* 字体类型
* 字体比例(指定字体大小)
* regular things like color, thickness, lineType etc.
lineType = cv2.LINE_AA is recommended.
示例:
img=np.zeros((512,512,3),np.uint8)
font=cv2.FONT_HERSHEY_SIMPLEX
#参数依次是img,text,坐标,字体,字体大小,颜色,厚度,linetype
img=cv2.putText(img,'OpenCV',(10,500),font,4,(255,255,255),5,cv2.LINE_AA)