怎么做多行MATLAB的线拟合?

时间:2013-11-08 13:26:32

标签: matlab image-processing

我试图找到边框图像中的所有直线。例如,邮票有四条边,我已经在MATLAB中通过edge函数找到了这些边。但有一个问题是它们不是真正的直线。所以我需要使用线条拟合来获得所有四个边框。但polyfit函数一次只能匹配一行。是否有任何解决方案可以同时适应所有线路。 例如:here我上传了一些图片,红线图像就是我想要的。请做好我需要四条不同的线路。

2 个答案:

答案 0 :(得分:0)

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

您可以尝试以下算法:

  1. 从四个角落开始。
  2. '行走'其中一个角落并确定所有点是否仍在四个角落内
  3. 如果是,请保存此角落并转到步骤2,否则转到第2步
  4. 继续重复步骤2和3,直到找到稳定的解决方案。

答案 1 :(得分:0)

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