使用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 2024-05-01 14:38  会飞的金鱼  阅读(22)  评论(0)    收藏  举报