matlab去除大面积连通区域

       在利用进行图像形态学处理的时候,经常需要去除面积较大或面积较小的连通区域。

       对于去除面积较小的连通区域,matlab提供了现有的函数

BW2 = bwareaopen(BW,P,conn)  %删除二值图像BW中面积小于P的对象,默认情况下conn使用8邻域

      可是matlab并没有去除面积较大连通区域的函数,当然网上也有各种方法来解决这个问题,不过有些繁琐。今天博主给大家介绍一个超级简单且NB的方法。打开matlab,在命令行输入

bwareaopen

      选中右击,打开所选内容,也就是打开bwareaopen这个函数


然后我们在函数中找到这个位置,

将其中的

area >= p

修改为

area <= p

然后,修改函数名并另存为removeLargeArea,注意:一定是另存,否则bwareaopen就变成去除较大面积的联通区域了。




      此时,我们获得了一个函数,然后类似bwareaopen直接调用即可。

BW2 = removeLargeArea(BW,P,conn)  %删除二值图像BW中面积大于P的对象,默认情况下conn使用8邻域

      可以将这个函数和bwareaopen放在一个路径下,以后直接调用即可(推荐);也可以放在你的工作目录下,不过更换目录时,需要将函数粘贴过去。

Enjoy!


猜你喜欢

转载自blog.csdn.net/lch_vison/article/details/79847660