scipy中的距离变换算法

a.s*_*iet 5 python scipy

由于距离变换有很多不同的算法(参见这里的例子),我很难理解 scipy 的 distance_transform_edt 和 distance_transform_bf 是如何工作的。是否有任何可用的详细说明?

tom*_*m10 1

追踪源码...

distance_transform_edt最后的代码以以下有用的注释开头:

/* Exact euclidean feature transform, as described in: C. R. Maurer,
   Jr., R. Qi, V. Raghavan, "A linear time algorithm for computing
   exact euclidean distance transforms of binary images in arbitrary
   dimensions. IEEE Trans." PAMI 25, 265-270, 2003. */

int NI_EuclideanFeatureTransform(PyArrayObject* input,
           PyArrayObject *sampling_arr,
           PyArrayObject* features)
Run Code Online (Sandbox Code Playgroud)

最终distance_transform_bf得到一个看起来像是强力计算的函数。但这里的算法在主要文档和基本搜索中出现的其他地方也得到了很好的描述。