我是图像处理的新手。我想找到将它们分开的黑色和白色像素之间的表面。这是图像的链接。 图片大小为(21,900,900)
https://drive.google.com/file/d/1zUWK0Fb_n6f1JZou5mrUJq0x3h2X8mBK/view?usp=sharing
我试图在一个图像平面中使用MATLAB的boundarymask命令,但是我遇到了噪点,并且它仅适用于2D图像。请在这里建议我如何找到边界3d曲面。谢谢。 这是应用边界蒙版之后的输出图像。
答案 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
在这种情况下,我在这里使用的边缘检测器肯定是过大了,但是这是我短期内想到的最简单的方法。如果性能很重要,请告诉我,我会给您另一种方法。