使用opencv绘制不同的几何形状。
cv.line(),cv.circle(),cv.rectangle(),cvellipse(),cv.putText()等。
上述功能,常见参数
- img:绘制形状的图像
- color:形状的颜色。对于BGR,将其作为元组传递,如(255,0,0)。对于回到只需传递标量值即可。
- 厚度:线或圆等的粗细,如果对闭合图像(如圆)传递-1,它将填充形状。默认厚度=1。
- lineType:线的类型,是否为8连接线,抗锯齿线等。默认情况下,为8连接线。cv.LINE_AA给出了抗锯齿的线条,非常适合曲线。
import cv2 as cv import numpy as np img=np.zeros((500,500,3),np.uint8) # 画线 需要传递线的开始坐标和结束坐标 img=cv.line(img,(0,0),(499,499),(255,0,0),1,cv.LINE_AA) # 画矩形 需要矩形的左上角和右下角,和画线的参数类似,调用方法不同 img=cv.rectangle(img,(100,100),(300,400),(255,0,0),1,cv.LINE_AA) # 画圆 需要中心坐标和半径 厚度参数为-1,表示填充 img=cv.circle(img,(200,200),50,(0,255,0),-1,cv.LINE_AA) # 画椭圆 需要中心位置(x,y),轴长度(长轴长度,短轴长度)。angle是椭圆沿逆时针方向旋转的角度。 # startAngle和endAngle表示从主轴沿顺时针方向测量的椭圆弧的开始和结束 img=cv.ellipse(img,(250,300),(100,80),30,0,360,(0,0,255),1,cv.LINE_AA) #画多边形 需要顶点坐标,这些点组成形状为ROWSx1x2的数组,其中ROWS是顶点数,并且其类型应为int32。 pts=np.array([[10,5],[20,30],[70,20],[50,10]],np.int32) pts=pts.reshape((-1,1,2)) cv.polylines(img,[pts],True,(0,0,255),1,cv.LINE_AA) # 向图像填充文字 写入的文字,放置它的坐标(数据开始的左下角),字体类型,字体比例(指定字体大小) font=cv.FONT_HERSHEY_SIMPLEX img=cv.putText(img,'OpenCV',(30,450),font,4,(255,255,255),2,cv.LINE_AA) cv.imshow('img',img) cv.waitKey(0) cv.destroyAllWindows()
结果:

posted on
浙公网安备 33010602011771号