二进制图像/地图中的真正最短路径

时间:2015-02-23 10:00:03

标签: dijkstra shortest-path a-star

如何在二进制图像/地图中找到真正的最短路径?

我研究了不同的算法,例如: Dijkstra和A *但它们仅产生最短路径的近似值,因为所有像素仅以“8连接”方式连接。

我可以用什么算法来获得真正的最短路径 - 下图中的红线?

enter image description here

1 个答案:

答案 0 :(得分:3)

好吧,使用8连接的网格意味着你只能找到在8个邻居给定的方向上前进的路径(0,+ / - 45,+ / - 90,+ / - 135,180) 。如附图所示。

如果您需要使用A *,Dijkstra或类似方法解决此问题,解决此问题的唯一方法是增加路径的角度种类,增加网格的连接性(16或32连接) 。即便如此,你的路径方向也有限。

要解决您在问题中描述的问题,使用其他类型的算法,如Theta *,Field D *或Block A *。即使使用8连接网格作为搜索基础,这些算法也能够以任何角度(在您的问题中需要)找到路径。请查看Wikipedia entry: Any-angle path planning以获取有关此类搜索的更多信息。

我希望我的回答有所帮助。