matlab - 如何根据MATLAB中获得的距离变换进行手动计算?
问题描述
欧几里得是从a的距离变换。我正在使用Euclidean = bwdist(a,'euclidean');
基于此,我可以知道计算是如何工作的吗?从/到什么点 MATLAB 计算得到基于 MATLAB 的欧几里得?根据公式, sqrt[(x2-x1)^2 + (y2-y1)^2],这意味着我们需要 2 个点。MATLAB如何对每个像素进行计算?谢谢
解决方案
我认为以下链接非常直接地解释了该功能。
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。
祝你好运。
推荐阅读
- spring - Spring将不同的属性文件绑定到不同的bean
- swift - Reality Composer 默认锚点
- python - 在按下按钮之前,如何在另一个线程中运行函数,然后如何在没有 JavaScript 的情况下更新该线程中的网页?
- c# - PDFSharpCore XImage.FromStream
- visual-studio - 在 Visual Studio 中禁用连字
- reactjs - 使用浏览器 API 而非 React 应用程序中的 ref 进行焦点管理?
- sql - 如何获取 6 个月的数据
- php - PHP无法在一页上检索cookie
- sql - 根据过期日期时间分组查询结果?
- python - Pandas:选择范围之间第一次出现的DataFrame行