0

我正在尝试在边界图像中找到所有直线。例如,邮票有四个边,我已经edge在 MATLAB 中通过函数找到了这些边。但是有一个问题是它们不是真正的直线。所以我需要使用线拟合来获得所有四个边框。但是polyfit函数一次只能容纳一行。是否有任何解决方案可以同时适合所有行。例如:<a href="http://s1294.photobucket.com/user/ssjssh/library/?sort=3&page=1" rel="nofollow">这里上传一些图片,红线的图片是什么我想。请注意我需要四个单独的行。

4

2 回答 2

0

你想摆脱穿孔吗?在这种情况下,我建议使用阈值分割图像的暗区,然后使用regionprops来获取它们的边界框。然后你可以找出排除它们的最大矩形。

于 2013-11-08T14:54:37.607 回答
0

从图像来看,您不会尝试平滑某些线条或填补空白。相反,它看起来更像是您需要将图像放在尽可能小的盒子中。

这是您可以尝试的算法:

  1. 从所有 4 个角开始。
  2. 向内“走”其中一个角并确定所有点是否仍在四个角内
  3. 如果是,则保存此角并转到第 2 步,否则转到第 2 步

不断重复第 2 步和第 3 步,直到获得稳定的解决方案。

于 2013-11-08T13:40:13.087 回答