使用腐蚀和膨胀
Working with erosion and dilatation
从上一个link:
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)
所以,我不明白
google 是你的朋友。如果您不知道函数的作用,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
我相信你可以自己解决剩下的问题!
从上一个link:
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)
所以,我不明白
google 是你的朋友。如果您不知道函数的作用,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
我相信你可以自己解决剩下的问题!