如何实现一个Python函数来查找沿二进制掩模图像给定点的所有像素的距离[关闭]

问题描述 投票:0回答:1

假设我有一个二值图像(简单地表示为 2D numpy 数组),其中一些像素为“1”,其中遮罩打开,其他像素为“0”。例如:

我想找到从左下像素(索引 [4, 0])到掩模图像中所有其他“1”像素的距离,但路径只能沿着掩模像素行进(即可以' t 跨越“0”像素)。请参阅下面的原始像素,以红色标记:

简而言之,我想要得到如下图像:

其中所有掩模像素都标记有距种子像素的 L1 最小距离。我计划将建议的解决方案应用于尺寸约为 100x200 像素的图像。

是否有一个Python函数(或一系列函数)可以实现这个?

我当然可以将图像转换为(稀疏)图并应用最短路径算法。不确定这会有多有效。

python image-processing graph-theory path-finding mathematical-morphology
1个回答
0
投票

我最终使用了https://github.com/Forget-It-Not/Geodesic_Distance_Transform。它支持 L1 和 L2 距离。唯一需要注意的是,我必须在原始图像的每一侧填充一行(和一列)零,以使输出有意义。

© www.soinside.com 2019 - 2024. All rights reserved.