使用侵蚀和扩张

时间:2016-06-01 02:19:47

标签: matlab image-processing image-segmentation

来自上一个链接:

Working with an specific region generated by BoundingBox

以下代码基于它

se = strel('disk',9);

p_mask=imerode(Ic(BB,1).Image,se);
k_mask=imdilate(p_mask,se);

Ipointer=I2.*repmat( k_mask , [1 1 3]);

figure,imshow(Ipointer)

Mch=Ic(BB,1).Image-k_mask;
Mbch=bwareaopen(Mch,3000);
Ichaplet=I2.*repmat( Mbch , [1 1 3]);
figure,imshow(Ichaplet)

所以,我不明白

1 个答案:

答案 0 :(得分:1)

谷歌是你的朋友。如果您不知道某项功能是什么,请使用Google Matlab及其名称并阅读参考文档。

se是你的结构元素。这里定义为半径为9的磁盘 http://de.mathworks.com/help/images/ref/strel-class.html

你的二进制图像被侵蚀,然后扩张(称为开放) https://en.wikipedia.org/wiki/Opening_(morphology)

假设白色被认为是前景(我只能猜测没有你的图像)打开将删除小白点。侵蚀通过在轮廓周围啃咬来缩小一切。如果你吃了足够的东西就吃洞穴对象了:)扩张会调整那些没有被完全侵蚀的物体。膨胀会在轮廓周围添加像素。

bwareaopen将删除小于3000像素的连接组件 http://de.mathworks.com/help/images/ref/bwareaopen.html

我确定你可以自己弄明白其余部分!