形态学图像处理实验.docx
文本预览下载声明
形态学图像处理实验
算法原理
提取与图像边界融合的颗粒
可利用区域填充算法。如图1所示为源图像,可将图像先转换为二值图像,然后对其进 行取反,这样进行区域填充的结果将为与边界相连的颗粒,再与源图像进行比较,即可 得出在源图像中与边界相连的颗粒图像。
提取彼此交叠的颗粒
可利用图像的腐蚀与膨胀操作。先用模板对图像进行腐蚀操作,由于相交叠的颗粒面积 必然比独立的颗粒大,因此腐蚀操作之后剩下的部分为交叠颗粒的部分,再对其进行膨 月长,将其与源图像进行比较操作,则可得出交柱的颗粒图像。
提取不交叠的颗粒
得出交叠的颗粒之后,用源图像对?其相减,则得出的为独立分布的颗粒图像。
Matlab源代码
clear all
clc
origin = imread(E:\Documents\BUPT\DI P\第三次作业 \grain.jpg);
imshow(origin);title(‘ 原图);
origi n = rgb2gray(origi n);
filterResult = medfilt2(origin);
[m’n] = size(origi n);
%%%%%%%%%%%%取与边界融合的粒子%%%%%%%%%%%%%
binarylm = im2bw(origi n);
tmp = ^binarylm; %tmp 为取反图像
fieldFilli ng = imfillftrnp/holes1);
figure, imshow(fieldFilling);title(*区域填充结果);
boudaryGrai ns = origi n;
for i = l:m
for j = l:n
if fieldFilling(ij) ==1
boudaryGrains(ij) = 0;
end
end
end
figure, imshow(boudaryGrains);title(与边界融合的粒子结果);
%%%%%%%%%%%取交叠与未交叠的粒子%%%%%%%%%%%%
maskl = strel(,ball/12/12);
%mask2 = ones(13」3);
mask2 = stref ball:7,7);
mask3 M stre=c£isk「4);
mask4 n stre-(?ba--「6、6)j
resu-tl H imerode(fi-terResu-tones(15J15)r
resu-(2 n f=ter2(fspecia-(-average「7Lim2doub-e(resu-(l)r
resu-t2 H medfi-t2(resu-t2);
resu-t2 u im2uin(8(resu-t2r
resu-t3 H imdi-ate(resu-t2、maskl); figure、imshow(resu-s三侍(^!资^莒雀泊-); figure、imshow(resu-t3)jtit-e(M—^wJK^?)j
resu-t4 H origin
fori Nrm
forj M :Ln
if resu_t3(Lj) AnMO
resu-t4(Lj) u oj
e-se
resu_r4(Lj) n orB:n(Ljr
figure」mshow(resu-t4uit-e(BB^l?^?); resu-r5 n imerode(resu-t4、mask4)j resu-r6 n imdi-are(resu-6mask4r f i g u r e、i m s h o w (r e s u -16) jtEe (^⑧苗『沖泄) resu-t7 H 0riginAesu-t4j resu-〔8 n imerode(resu-t7、mask4)j resu-〔9 n imdi-are(resu-6a、mask4r figure」mshow(resu-t9st-e(*?^a『ffi*)j
3.运行结果分析
1)提取与边界融合的颗粒
原图 区域填充结果
与边界融合的粒子结果
2)提取交壳的颗粒
第一次腐蚀结果第-次膨胀结果
第一次腐蚀结果
第-次膨胀结果
第一次腐蚀所示结果为在腐蚀Z后进行了一次屮值滤波和一次5X5均值滤波的结果,为 使腐蚀的结果更好,去除独立颗粒的腐蚀残留图像。
阈值处理结果交直粒子结果
阈值处理结果
交直粒子结果
调整阈值大小,将腐蚀结果与源图像进行比对,在膨胀结果符合阈值要求的范围内获取 源图像颗粒部分,可以看出阈值处理的结果边界有很多残余,为去除这些残余,对其进 行开操作,即先腐蚀再膨胀,结果变得比较圆滑,符合颗粒的特征。
3)提取独立的颗粒
未交腔粒子结果
将源图像减去阈值处理的图像即为未交叠颗粒结果,上图也为将其进行开操作之后的结 果。
4.实验结果分析
対交叠与独立颗粒分离的结果不太理想,在交叠颗粒的
显示全部