从任意一组线段中检测四边形形状

在这里输入图像描述

附加的图像是Opencv 2.4.2的Hough变换的输出

能否请您用最好的算法来指导我从这些线段中检测最佳的四边形(并非总是矩形)形状

即使有些角落位于图像边界之外,我仍然需要检测它们

非常感谢


没有时间去实际尝试这个,我可以像这样形象化:

  • 迭代所有线并计算斜率。
  • 按斜线对线进行排序
  • 如果两条线具有大致相似的斜率,则它们要么是平行的,要么是与其中的间隙相同的线(例如,左侧的几乎是垂直的线)。 要弄清楚哪些,计算它们将在哪里截取x或y轴。 如果他们拦截在同一点,他们是相同的线,应该合并成一条线。 如果不是,将它们放在一组(大致)平行线中。
  • 将每组平行线与每组平行线进行比较,并计算它们是否相交(可能在屏幕外)。
  • 应用一些依赖于应用程序的标准来挑选最好的。
  • 这种运行时间很大程度上取决于检测到的线数和平行线组的数量。 您可以通过仅考虑长度最短的线条,使用线条被认为平行的阈值来改进一点,等等。

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

    上一篇: Detecting quadrilateral shapes from random set of lines segments

    下一篇: What's the use of Canny before HoughLines (opencv)?