连通域过滤,利用筛选条件进行二值图像连通域的过滤

stats = regionprops(openbw, 'BoundingBox' ,'Area','Centroid' ,'PixelList' ); %统计白色的连通区域Centroid拒信,
centroids = cat(1, stats.Centroid);
figure('name','regionprops'); %regionprops连通域标记
%绘制开操作之后的二值化图像
imshow(openbw);%title('centroids')

IM2 = imclearborder(openbw,8);
hold on
通过以上函数,确定出二值图片中的一些连通域,接下来通过一些筛选条件,即连通域宽高比<1的无用连通域过滤掉,想把无用的连通域设置为背景色(黑色)。请问如何将这些区域设置为黑色??????
已有思路:得到的矩阵L应该是一个和源图像素相同的矩阵,然后每个联通区域在L中对应的数值不同,比如第n个联通区域在L中就是一堆n,所以判断出第n个区域不需要后,将L中对应的数值置0(背景),然后L的所有像素值为0的是背景色不为0的是需要的联通区域。大概就是这样。

请问代码具体怎么写,比如,我是根据连通域的长宽比进行过滤,如何将长宽比<1的连通域都置为背景0。利用上面的方法是,第i个长宽比<1的话, 就将L连通域中为 i 的数置0,但是具体怎么写代码,我代码基础很差,希望贴下代码,大家互相学习。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐