如何在此图像中找到边界面

时间:2019-03-17 08:50:47

标签: matlab image-processing

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

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

我试图在一个图像平面中使用MATLAB的boundarymask命令,但是我遇到了噪点,并且它仅适用于2D图像。请在这里建议我如何找到边界3d曲面。谢谢。 这是应用边界蒙版之后的输出图像。

How to find surface boundary between white and black

1 个答案:

答案 0 :(得分:1)

您的第一步应该是消除噪音。由于您遇到了某种盐和胡椒粉噪声,因此可以在Matlab中使用medfilt2()的2D图像上使用中值滤波器来实现。之后,您可以使用边缘检测器找到边缘像素。用于此的代码可能如下所示。如果需要表面,则需要在3D图像的第3维上进行循环。该代码将如下所示:

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

在这种情况下,我在这里使用的边缘检测器肯定是过大了,但是这是我短期内想到的最简单的方法。如果性能很重要,请告诉我,我会给您另一种方法。