bwlabel
可用于获取图像中断开连接的对象:
[L Ne] = bwlabel(image);
如何计算两条不连通的闭合曲线之间的最短路径?
有实际的(非理论的)解决方案吗?
建议1
尝试提取要连接的对象的周边像素的坐标,并将它们用作图形中的节点。然后使用A*算法 http://en.wikipedia.org/wiki/A*找到集合之间每对之间的最短路径。这使用 A* 有效地解决了全对问题,但将其限制为感兴趣的节点(从一个对象中的节点到另一对象的路径)。
建议2(更简单)
另一个想法(未经测试)是计算每个斑点的质心之间的最短路径(regionprops 可用于计算质心)并查看哪个周边像素与该路径相交。当然,如果您的质心位于斑点内,这可能会起作用,但对于非凸斑点,事情会变得混乱。这将算法的复杂性降低到斑点的数量,而不是周边像素的数量(可能很大)。
另外,如果建议2适合你,你可以使用弗洛伊德·沃歇尔 http://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm计算图像中所有斑点之间的最短路径。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)