5

在此处输入图像描述

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

您能否建议我用最好的算法从这些线段中检测出最好的四边形(不总是矩形)形状

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

非常感谢

4

1 回答 1

2

没有时间实际尝试这个,我可以想象这样的事情:

  1. 遍历所有线并计算斜率。
  2. 按斜率对线进行排序
  3. 如果两条线具有大致相似的斜率,它们要么是平行的,要么是同一条线,其中有一个间隙(例如左侧几乎垂直的线)。要弄清楚哪个,计算它们将在哪里截取 x 或 y 轴。如果它们在同一点截取,则它们是同一条线,应合并为一条线。如果没有,请将它们放在一组(大致)平行线中。
  4. 将每组平行线与其他组进行比较,并计算它们是否相交(可能在屏幕外)。
  5. 应用一些依赖于应用程序的标准来选择最好的。

其运行时间很大程度上取决于检测到的线数和平行线组的数量。您可以通过仅考虑具有最小长度的线、使用将线视为平行的阈值等来改进一点。

于 2014-06-18T20:37:36.343 回答