正如您在图像中看到的,我的图像包含许多行。如何使用matlab获取最长的行,然后删除其他行?
答案 0 :(得分:2)
首先,正如Lokesh A. R.所提到的,你想要的图像线并不是最长的,因为它不是连续的。
如果你真的想要找到那条线,那么看一下dilation,这将扩展线条,导致线条中的小间断连接,然后将线条缩回到相同的厚度。但是,这可能会使您不想连接的线路连接起来,并且除非图像中的线条足够远,否则可能不可靠。
如果你真的只想要最长的一行,那么我建议一个算法(你必须编码)
这是用于检测图像中的对象的基本算法,并且matlab可能可以执行此步骤。看一下object detection上的mathworks页面,看看它是否可以“检测”图像中的线条并给出关于它们的统计数据(比如每个像素的数量)
答案 1 :(得分:0)
在这里,请阅读:http://www.mathworks.com/help/images/ref/houghlines.html
基本上应该回答你的问题。 HoughLines是检测线条的常用方法之一。