灰度图像中两点之间的强度加权最小路径

Intensity-weighted minimal path between 2 points in grayscale image

我想确定图像中两个特定点之间的最小路径,即最小化由像素强度(灰度)加权的相邻像素之间的距离总和的路径。例如这张图片显示的是输入图像

这是红色的(手绘)最小路径,从 UL 到 LR 角(黑色边界用作零权重填充):

我发现 matlab 有 graydist function just for this; is there something similar in ndimage/scikit-image/whatever? I found scipy.ndimage.morphology.distance_transform_edt 但我不确定是否以及如何将它用于此目的。如果算法 returns 只有一个非唯一最小值就可以了。

我对实现提示不感兴趣,它在算法上是一个相当简单的任务(至少是使用例如动态编程的天真实现),我正在寻找(组合)已经编码的例程来完成这个。

这种类型的动态规划在 scikit-image 中可用 route_through_arrayshortest_pathhttp://scikit-image.org/docs/dev/api/skimage.graph.html