所以我有一个250x200px的原始文件,我已经读入像rawFile[250][200]
这样的2D数组,每个像素(每个数组索引)充当一个节点,每个像素值代表一个高程(想想:地形图)。我想找到使用Dijkstra算法从rawFile[0][0]
到rawFile[250][200]
的最短路径,距离成本是从node1
到{{1}的差异的绝对值加上到当前访问节点的最短路径距离。假设在相应方向上存在相邻节点,每个节点可以在四个基本方向(N,E,S,W)上移动。我已经读过所有需要邻接矩阵或邻接列表的伪代码和各种实现,在这种情况下它们是node2
。但是,我正在努力弄清楚如何从原始文件中填充邻接矩阵。
你们有没有解决这个问题的建议?谢谢!
答案 0 :(得分:1)
将图像转换为邻接矩阵是完全没必要的;你唯一需要的是"邻居"已隐含存在的信息。
任何像素i,j
的邻居都由(i-1,j), (i+1,j), (i,j-1), (i,j+1)
处受图像边界影响的像素表示。你不需要矩阵来编码;任何时候算法说看邻居,只需提供相邻的像素。