首页 > 解决方案 > 如何在此图像中找到边界表面

问题描述

我是图像处理的新手。我想找到将它们分开的黑白像素之间的表面。这是图片的链接。图像大小为 (21,900,900)

https://drive.google.com/file/d/1zUWK0Fb_n6f1JZou5mrUJq0x3h2X8mBK/view?usp=sharing

我尝试在一个图像平面中使用 MATLAB 的边界掩码命令,但我得到了噪音,而且它也仅适用于 2d 图像。请建议我如何在这里找到边界 3d 表面。谢谢你。这是应用边界掩码后的输出图像。

如何找到白色和黑色之间的表面边界

标签: matlabimage-processing

解决方案


你的第一步应该是摆脱你的噪音。由于您有某种椒盐噪声,您可以medfilt2()在 matlab 中使用 2D 图像上的中值滤波器来实现。之后,您可以使用边缘检测器来查找边缘像素。代码可能如下所示。如果你想要表面,你需要在你的 3D 图像的第三维上循环它。代码将如下所示:

for ii=1:16
    I=imread('image.tif',ii);
    I_bs=boundarymask(I);
    I_filt=medfilt2(I_bs,[7 7]);
    boundarysurface(:,:,ii)=edge(I_filt,'Canny');
end

对于这个简单的案例,我在这里使用的边缘检测器肯定是矫枉过正,但在短期内是我能想到的最简单的事情。如果性能相关,请告诉我,我会给你另一种方法。


推荐阅读