如何在MATLAB中进行多直线拟合?
我试着在一个图像中找到所有的直线,这是边界。例如,邮票有四条边,我已经通过MATLAB中的如何在MATLAB中进行多直线拟合?,matlab,image-processing,Matlab,Image Processing,我试着在一个图像中找到所有的直线,这是边界。例如,邮票有四条边,我已经通过MATLAB中的edge函数找到了这些边。但有一个问题是,它们不是真正的直线。所以我需要使用直线拟合来获得所有四个边界。但是polyfit函数一次只能安装一行。是否有任何解决方案可以同时适用于所有生产线。 例如:我上传了一些图片,带有红线的图片就是我想要的。请注意,我需要四条单独的线。从图像判断,您不会试图平滑一些线,或填补空白。相反,它看起来更像是你需要把你的图像放在尽可能小的盒子里 以下是您可以尝试的算法: 从四个角开
edge
函数找到了这些边。但有一个问题是,它们不是真正的直线。所以我需要使用直线拟合来获得所有四个边界。但是polyfit
函数一次只能安装一行。是否有任何解决方案可以同时适用于所有生产线。
例如:我上传了一些图片,带有红线的图片就是我想要的。请注意,我需要四条单独的线。从图像判断,您不会试图平滑一些线,或填补空白。相反,它看起来更像是你需要把你的图像放在尽可能小的盒子里 以下是您可以尝试的算法:
不断重复第2步和第3步,直到找到一个稳定的解决方案。您是否正在尝试去除穿孔?在这种情况下,我建议使用阈值分割来分割图像的暗区域,然后使用
regionprops
来获得它们的边界框。然后,您可以计算出排除它们的最大矩形。在您发布的链接上看不到任何内容。只提到一个私人档案。此外,您是否只有图片或基础数据?如果你能用polyfit
安装一条线,那么为什么不简单地使用polyfit
四次呢?@DennisJaheruddin抱歉,我对该网站不熟悉,你现在能看到吗?@DennisJaheruddin但是这四条线相互扭曲