数字图像处理技术当中,形态学分析技术是指运用数字形态学方法作为工具,待处理的图片我们一般针对二值化图像,从这种图片中来获取信息,比如图片的形态特征和一些数学形态轮廓等有目标性质的区域,例如物体之间的边界、结构边缘和一些特征等等,这种技术涵盖了一些照片的预处理还有一些算法运算中能用到的其他技术。
形态学图像处理的基本思想是指运用具有某种特征参数去观测和确定二值照片中的的形态参数特征用来实现一些识别等效果。数学角度来看,此项技术采用了集合理论作为基础来进行,其中基本的运算包括:腐蚀和膨胀运算、以及它们的组合运算,开运算和闭运算。
腐蚀和膨胀是对白色部分(高亮部分)而言的,不是黑色部分。膨胀就是图像中的高亮部分进行膨胀,“领域扩张”,效果图拥有比原图更大的高亮区域。腐蚀就是原图中的高亮部分被腐蚀,“领域被蚕食”,效果图拥有比原图更小的高亮区域
顾名思义,膨胀就是使图像中的目标“变粗”的操作。这种特殊的方式和变粗程度由一种被称为结构元的形状来控制的。A被B膨胀,表示为A⊕B,集合操作表示为:
其中,A是图像,B是结构元,结构元通常比图像小得多。膨胀满足结合律和交换律。
clear;
I=imread('D:\Documents\Desktop\TEST.jpg');
SE=strel('disk',10);
im=imdilate(I,SE);
figure,imshow(im),title('after erode');
腐蚀是膨胀的反操作,是将图像中的目标进行“细化”的操作,收缩的方法和程度也由结构元控制。A被B腐蚀表示为AΘB,集合操作表示为:
I=imread('timg.jpg');
SE=strel('disk',10);
imd=imdilate(I,SE);
ime=imerode(I,SE);
id=imd-I;%计算外边界
ie=I-ime;%计算内边界
subplot(131),imshow(I),title('original image');
subplot(132),imshow(id),title('Outer boundary');
subplot(133),imshow(ie),title('Inner boundary');
figure(2)
subplot(131),imshow(I),title('original image');
subplot(132),imshow(imd),title('膨胀');
subplot(133),imshow(ime),title(' 腐蚀');
I=imread('timg.jpg');
SE=strel('disk',5);%定义结构元素的形状,圆形-半径5
Iop=imopen(I,SE);%开运算函数,可以直接进行开运算
Icl=imclose(I,SE);%闭运算函数,可以直接进行闭运算
imd=imdilate(I,SE);%只进行膨胀
ime=imerode(I,SE);%只进行腐蚀
imebi=imdilate(imerode(I,SE),SE);%闭运算,先膨胀再腐蚀
imekai=imerode(imdilate(I,SE),SE);%开运算,先腐蚀再膨胀
subplot(241),imshow(I),title('原图');
subplot(242),imshow(ime),title('只腐蚀');
subplot(246),imshow(imd),title('只膨胀');
subplot(245),imshow(I),title('原图');
subplot(243),imshow(Iop),title('开运算函数');
subplot(247),imshow(Icl),title('闭运算函数');
subplot(244),imshow(imekai),title('开运算--先腐蚀再膨胀');
subplot(248),imshow(imebi),title('闭运算--先膨胀再腐蚀');
开操作可以用在去除噪声的实验中,这并没有改变图像的位置与基本轮廓,当实验只关心物体的位置和个数的时候,腐蚀的计算速度比单独过滤噪声更具有优势。另外说明,开闭运算是对偶的,对于某图像多次应用开运算或者闭运算,和只进行一次运算的效果相同。正如上面说明的那样,开操作和闭操作中的腐蚀和膨胀与结构元的状态紧密相关,当选取的结构元半径比较小的时候,基本看不出变换,反之选取的半径过大,会将原始图像变成另一种模样,因此选择膨胀和腐蚀的结构元时要选择合适的结构元的结构状态