OpenCV-Python-图像轮廓

© Fu Xianjun. All Rights Reserved.

绘制手掌多边形轮廓

文章目录


前言

边缘检测虽然能够检测出边缘,但边缘是不连续的,检测到边缘并不是一个整体。


二、使用步骤

1.轮廓查找与绘制

1.使用cv2.findContours()函数,实现图像轮廓的查找。

2.使用cv2.drawContours()函数,实现图像轮廓的绘制。

contours,hierarchy=cv2.findContours(image,mode,method)

contours:返回的轮廓。

hierarchy:图像的拓扑信息(轮廓层次)。

image:输入的图像。

mode:轮廓搜索模式:决定了轮廓的提取方式。

method:轮廓近似方法:决定了如何表达轮廓。

2.计算轮廓的面积及长度

image=cv2.drawContours(image, contours, contourIdx, color, thickness=None, lineType=None, hierarchy=None, maxLevel=None, offset=None)

length=cv2.arcLength(curve,closed)

curve :轮廓。 closed :布尔值,当为True时,表示闭合。

area=cv2.contourArea(contour [, oriented])

contour :轮廓。 oriented:布尔值,当为True时,表示顺时针或逆时针计算。

retval=cv2.moments(array[,binaryImage]

array:可以是点集,也可以是灰度图像或者二值图像。 binaryImage:当为True时,array内所有的非零值都会被处理为1。

3.使用Hu特征进行形状匹配

retval = cv2.matchShapes(contour1, contour2, method, 0.0)

contour1 :第一个轮廓或灰度图像。 contour2:第二个灰度或轮廓图像。 method :比较两个对象的Hu 矩的方法,写1。

4.轮廓的几何形状拟合

retval = cv2.boundingRect( array )

retval:矩形边界左上角顶点的坐标值及矩形边界的宽度和高度。 contour2:第二个灰度或轮廓图像。 method :比较两个对象的Hu 矩的方法,写1。

retval =cv2.minAreaRect( points )

retval:回的矩阵特征信息,结构是(最小外接矩形的中心(x,y),(宽度,高度),旋转角度)。 points:轮廓。

center, radius = cv2.minEnclosingCircle( points )

center:圆形。 radius:半径。 points:轮廓。

retval = cv2.fitEllipse( points )

center:RotatedRect 类型的值,这个是拟合椭圆的外界矩形,包含外接矩形的质心,宽,高,旋转角度等参数信息,这些信息与椭圆的中心点,轴长度,旋转角度等信息吻合。 points:轮廓。

line = cv2.fitLine( points, distType, param, reps, aeps )

approx = cv2.approxPolyDP(contour[0],epsilon,True)


总结

图像轮廓是图像中非常重要的一个特征信息,通过对图像轮廓的操作,我们能够获取目标图像的大小,位置,方向等。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值