草庐IT

fitEllipse

全部标签

opencv--轮廓拟合函数 boundingRect(),minAreaRect(),minEnclosingCircle(),fitEllipse(),fitLine()

目录1.cv2.boundingRect()2.cv2.minAreaRect()3.cv2.minEnclosingCircle()4.cv2.fitEllipse() 5.cv2.fitLine() 在计算轮廓时,可能并不需要实际的轮廓,而仅需要一个接近于轮廓的近似多边形。OpenCV提供了多种计算轮廓近似多边形的方法。1.cv2.boundingRect()能够返回包围轮廓的矩形的边界信息。函数样式:retval=cv2.boundingRect(array)参数介绍: retval表示返回矩形边界左上角顶点的坐标值及矩形边界的宽和高,也可以是4个返回值形式        x,y,w,h

c++ - OpenCV 的 fitEllipse() 有时会返回完全错误的椭圆

我的目标是识别图像中存在的所有形状。这个想法是:提取轮廓用不同的形状拟合每个轮廓正确的形状应该是面积最接近等高线的面积。示例图片:我使用fitEllipse()来找到最适合轮廓的椭圆,但结果有点困惑:可能正确的椭圆用蓝色填充,边界椭圆用黄色填充。可能不正确的轮廓用绿色填充,(错误的)边界椭圆用青色填充。如您所见,第一行中三角形边界的椭圆看起来非常适合最佳拟合。第三行中三角形的边界椭圆似乎不是最合适的,但仍然可以作为拒绝错误椭圆的标准。但我不明白为什么剩下的三角形的边界椭圆完全在它们的轮廓之外。而最坏的情况是最后一行的第三个三角形:椭圆是完全错误的,但它的面积恰好接近轮廓的面积,所以三角