opencv3.4+python3.6 中文教程3之绘图操作

目标

在图像上绘制不同的几何图形。

cv.line(), cv.circle() , cv.rectangle(), cv.ellipse(), cv.putText() 等函数的用法。

主要参数

img : 目标图像

color : 颜色元祖,按照BGR排列,如(255,0,0)即为blue蓝色。

Thickness: 以像素数代表宽度,-1代表实心填充。

lineType : 线型,cv.LINE_4、cv.LINE_8、cv.LINE_AA 。

划线

如:cv.line(img,(pnt1),(pnt2),(255,0,0),5)

pnt1代表起点,可以用(25,35)来表示。

pnt2代表终点。

(255,0,0)代表颜色,按照BGR排列,蓝色。

5:代表线宽。

画矩形

如:cv.rectangle(img,(pnt_top_left),(pnt_bottom_right),(0,255,0),3)

pnt_top_left:左上角坐标

pnt_bottom_right:右下角坐标

(0,255,0):颜色,BGR,green绿色。

3:代表宽度

画圆

如:cv.circle(img,(center), radio, (0,0,255), -1)

center:圆心坐标

radio:半径,以像素值表示

画椭圆

cv.ellipse(img, center, axes, angle, startAngle, endAngle, color[, thickness[, lineType[, shift]]])

如:cv.ellipse(img,(center),(100,50),0,0,180,255,-1)

center:代表圆心坐标。

axes(100,50)代表长轴和短轴。

第一个0,angle代表椭圆沿顺时针方向的旋转角度。

startAngle, endAngle:代表椭圆的起始角度和终止角度,逆时针。

绘多边形

我们首先需要建立一个坐标矢量的列表,把多边形的顶点按照需要的格式规整好,如下:

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,255,255))

true代表形成一个封闭的多边形,false代表只是连接各顶点,而非封闭。

用cv.polylines函数来绘制多条直线比用cv.line()函数的效率要高。

给图片增加文字

font = cv.FONT_HERSHEY_SIMPLEX

cv.putText(img,'OpenCV',(start_pnt), font, 4,color,2,cv.LINE_AA)

其中OpenCV代表要添加的文字,opencv目前还不支持中文。

4代表文字高度的比例。

2代表线宽。

cv.LINE_AA:代表线宽。

实例

版权声明:

作者: freeclashnode

链接: https://www.freeclashnode.com/news/article-3422.htm

来源: FreeClashNode

文章版权归作者所有,未经允许请勿转载。

免费节点实时更新

热门文章

最新文章

归档