想要复现这篇文献的算法 要求一副二值图图片里所有的白色像素点到最邻近的黑色像素点的距离,然后做出上图的距离分布图像,作者用的是MATLAB但是没有找到源代码,小白求助,感谢!!!
在 MATLAB 中,计算二值图中白色像素点到最临近的黑色像素点之间的距离,可以使用 bwdist
函数。该函数可以计算二值图像中每个前景像素到最近背景像素的欧几里得距离或者城市街区距离。
以下是计算白色像素点到最邻近的黑色像素点之间的欧几里得距离的示例代码:
% 创建二值图
bw = logical([0 0 0 0 0 0 0 0
0 1 1 1 0 1 0 0
0 1 0 1 0 1 0 0
0 1 1 1 0 1 1 1
0 0 0 0 0 0 0 0]);
% 计算白色像素点到最邻近的黑色像素点之间的距离
d = bwdist(~bw);
% 显示距离图像
figure();
imshow(d, []);
colormap(jet);
colorbar;
title('距离图像');
在该示例中,首先创建了一个 5x8 的二值图,然后调用 bwdist
函数计算白色像素点到最邻近的黑色像素点之间的距离,并将结果存储在 d
中。最后,通过 imshow
函数可视化距离图像并使用 colormap
对其进行着色。
运行示例代码后,会得到如下的距离图像:
其中,颜色越亮表示像素点到最邻近的黑色像素点之间的距离越远,越暗表示距离越近。可以看到,二值图中每个白色像素点周围都有距离值,表示白色像素点到最近的黑色像素点的距离。