赞
踩
《OpenCV 轻松入门 面向Python》 学习笔记
计算轮廓时,可能不需要实际的轮廓,而仅需要一个接近于轮廓的近似多边形,Opencv中提供了多种计算轮廓近似多边形的方法。
函数原型:
retval =cv2.minAreaRect(points)
注意,返回值retval不满足 cv2.drawContours() 参数结构要求,必须将其转换为符合要求的结构才可以使用。如下函数可以将上面的返回值retval转换成符合要求的结构:
points = cv2.boxPoints(box)
函数原型:
center, radius = cv2.minEnclosingCircle(points)
参数:
函数原型:
retval = cv2.fitEllipse(points)
参数:
函数原型:
line = cv2.fitLine(points, distType, param, reps, aeps)
参数:
retval, triangle = cv2.minEnclosingTriangle(points)
参数:
# 用来构造指定精度的逼近多边形曲线
approxCurve = cv2.approxPolyDP(curve, epsilon, closed)
返回值:
参数:
函数 cv2.apprxPolyDP() 采用 Douglas-Peucker算法(DP算法) 该算法首先从轮廓中找到距离最远的两个点,将两点相连,然后在轮廓上找一个离当前直线最远的点,将该点与原有直线连成一个封闭的三角形。
然后不断重复上述过程,将新找到的距离当前多边形最远的点加入到结果中,当轮廓上所有的点到到当前多边形的距离都小于函数epsilon 参数的值,就停止。epsilon 是逼近多边形的精度信息,通常设置为多边形总长度百分比的形式
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。