bwlabel
可用于获取图像中的断开连接的对象:
[L Ne] = bwlabel(image);
如何计算两条断开的闭合曲线之间的最短路径?
是否有实用(非理论)的解决方案?
答案 0 :(得分:1)
尝试提取要连接的对象的周边像素的坐标,并将它们用作图形中的节点。然后使用A* algorithm查找集合之间每对之间的最短路径。这有效地解决了使用A *的全对问题,但将其限制在感兴趣的节点(从一个对象中的节点到另一个对象的路径)。
另一个想法(未经测试)是计算每个blob的质心之间的最短路径(regionprops可用于计算质心)并查看哪个周边像素与路径相交。当然,如果你的质心在blob内,这可能会有效,但是非凸起的blob会让事情变得混乱。这会将算法的复杂性降低到blob的数量,而不是周边像素的数量(可能很大)。
此外,如果建议2 适合您,您可以使用Floyd-Warshall来计算图像中所有斑点之间的最短路径。