兴趣区域进行合并筛选
Find(k<&k>)函数 寻找感兴趣的矩阵数值 返回索引
Regionprops 统计
Label贴标签、imareaopen 出去小面积的连通区域
如何对感兴趣的一些连通区域进行重组,除掉不感兴趣的区域??? 研究imareaopen函数,里面有个bwconncomp、cellfun函数 cellfun函数很关键
imareaopen函数定义:
[bw,p,conn] = parse_inputs(varargin{:});%参数解析
CC = bwconncomp(bw,conn); %寻找连通部位
area = cellfun(@numel, CC.PixelIdxList);%对像素统计
idxToKeep = CC.PixelIdxList(area >= p);%总数大于p的像素对应的索引进行提取
idxToKeep = vertcat(idxToKeep{:}); %将所有的索引进行级联
bw2 = false(size(bw));%将原图清0
bw2(idxToKeep) = true;%将保留的索引像素位置赋值1
Bwconncomp函数返回的四个参数:
Connectivity: 8 % 连通性 8连通
ImageSize: [497 704] %图片尺寸
NumObjects: 62 %联通区数量
PixelIdxList: {1x62 cell} % 每个联通区所产生的像素索引列表 分成了62个元包数组 每个数组的元素个数等于该连通区域的像素个数,每个里面记录的是该像素在这张图片中所在的具体索引值
有了PixelldxList后,后面就可以自由发挥了。
孔洞填充 BW1= im2bw(imread('coins.png'));%读入图片,进行二值化处理 BW2= imfill(BW1,'holes');%将原图填充孔洞 imview(BW1), imview(BW2)%对比