从随机的线段集中检测四边形形状

时间:2012-10-31 09:58:02

标签: image-processing opencv artificial-intelligence shapes hough-transform

enter image description here

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

您能否告诉我使用这些线段检测最佳四边形(并非总是矩形)形状的最佳算法

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

非常感谢

1 个答案:

答案 0 :(得分:1)

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

  1. 迭代所有线并计算斜率。
  2. 按行斜度对行进行排序
  3. 如果两条线具有大致相似的斜率,则它们是平行的或具有间隙的相同线(例如左边几乎垂直的线)。要弄清楚哪个,计算它们将截取x或y轴的位置。如果它们在同一点拦截,则它们是同一条线,应合并为一条线。如果没有,请将它们放在一组(粗略)平行线中。
  4. 将每组平行线相互比较,并计算它们是否相交(可能在屏幕外)。
  5. 应用一些依赖于应用程序的标准来挑选最佳标准。
  6. 这的运行时间很大程度上取决于检测到的行数和平行行数。你可以通过只考虑具有最小长度的行,使用阈值来考虑哪些行被认为是平行的等等来改善一点。