使用OpenCV在图像中查找直线段

使用OpenCV的findContours()我有一个图像中的轮廓列表。 我只对直线感兴趣,所以如果他们太“曲折”,他们应该被拒绝。 问题是如何评估每个轮廓是多直的?

我看着fitLine(),但似乎没有返回的合适度量。 我可以使用返回的行自己评估一下。

我看着arcLength(),目的是将其与边界矩形的尺寸进行比较,但即使对于有些直线,如果轮廓点密集,弧长也会相对较长。

我可以找到凸包,并与边界矩形尺寸进行比较,但是我必须分析凸包缺陷。

有没有在这里有用的时刻?


  • 像现在这样查找轮廓
  • 使用HoughLines()查找图像中的直线
  • 计算轮廓和直线之间的重叠

  • 在轮廓上取两点(例如cv::approxPoly )并计算它们的绝对距离。 然后通过两点之间的轮廓点并将所有距离相加。 如果轮廓上的距离与绝对距离之间的差值大于某个阈值,您可以拒绝它。

    链接地址: http://www.djcxy.com/p/58723.html

    上一篇: Find straight line segments in image using OpenCV

    下一篇: Closing a contour curve in OpenCV