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.