首页 > 解决方案 > 如何根据MATLAB中获得的距离变换进行手动计算?

问题描述

欧几里得是从a的距离变换。我正在使用Euclidean = bwdist(a,'euclidean'); 基于此,我可以知道计算是如何工作的吗?从/到什么点 MATLAB 计算得到基于 MATLAB 的欧几里得?根据公式, sqrt[(x2-x1)^2 + (y2-y1)^2],这意味着我们需要 2 个点。MATLAB如何对每个像素进行计算?谢谢

标签: matlabtransformdistance

解决方案


我认为以下链接非常直接地解释了该功能。

https://uk.mathworks.com/help/images/ref/bwdist.html

D = bwdist(BW)计算二值图像 BW 的欧几里得距离变换。对于 BW 中的每个像素,距离变换分配一个数字,该数字是该像素与 BW 中最近的非零像素之间的距离。

对于您的第一个点 a(1,1),最近的点是 a(2,2),所以距离是 sqrt(2)。

对于 a(1,2),最近的非零也是 a(2,2),所以距离是 sqrt(1) = 1。

对于a(2,2),最近的非零是它自己,所以距离是sqrt(0) = 0。

祝你好运。


推荐阅读