資源簡(jiǎn)介
利用灰度共生矩陣,對(duì)紋理圖像進(jìn)行分割,里面有代碼和測(cè)試圖像

代碼片段和文件信息
clear?
clc;
%%?讀取圖像
tic;
%?I?=?imread(‘Texture_mosaic_2.jpg‘);
I?=?imread(‘18.bmp‘);
%?[MN]?=?size(I);
%?%?為了減少計(jì)算量,對(duì)原始圖像灰度級(jí)壓縮,將灰度量化成16級(jí)
%?%--------------------------------------------------------------------------
%?for?i?=?1:M
%?????for?j?=?1:N
%?????????for?n?=?1:256/16
%?????????????if?(n-1)*16<=I(ij)&I(ij)<=(n-1)*16+15
%?????????????????I(ij)?=?n-1;
%?????????????end
%?????????end
%?????end
%?end
%%?利用灰度共生矩陣提取紋理特征
w?=?15;?%基準(zhǔn)窗口大小
I1?=?wextend(‘2D‘‘sym‘I(w-1)/2);%掃描窗口的大小15*15,為之后程序方便找中心點(diǎn)可以將窗口設(shè)置成4*4-32*32之間的任何奇數(shù)窗口
%掃描窗口的移動(dòng)方向
%?offsets1=[0?1];??%水平單步
offsets1?=?[01;-11;-10;-1-1];%選取0°,45°,90°135°四個(gè)方向
%定義4個(gè)矩陣用于存放由graycomatrix產(chǎn)生的灰度共生矩陣的4個(gè)二次統(tǒng)計(jì)特征量
[mn]?=?size(I1);???????
I_GLCM_con?=?zeros(mn);???????????????%對(duì)比度Contrast??????
I_GLCM_hom?=?zeros(mn);???????????????%同質(zhì)度Homogeneity
I_GLCM_cor?=?zeros(mn);???????????????%相關(guān)性Correlation
I_GLCM_ene?=?zeros(mn);???????????????%能量Energy
I_GLCM?=?zeros(mn);
for?i?=?(w+1)/2:m-(w-1)/2??????????
????for?j?=?(w+1)/2:n-(w-1)/2???????????
????????W?=?zeros();??????
????????W?=?I1(i-(w-1)/2:i+(w-1)/2j-(w-1)/2:j+(w-1)/2);????????
????????[glcmsSI]?=?graycomatrix(W‘NumLevels‘8‘G‘[]‘offset‘offsets1);
????????stats?=?graycoprops(glcms‘a(chǎn)ll‘);
????????Con?=?[stats.Contrast];
????????H?=?[stats.Homogeneity];
????????Cor?=?[stats.Correlation];
????????Ee?=?[stats.Energy];
????????I_GLCM_con(ij)?=?mean(Con);
????????I_GLCM_hom(ij)?=?mean(H);
????????I_GLCM_cor(ij)?=?mean(Cor);
????????I_GLCM_ene(ij)?=?mean(Ee);
????????I_GLCM(ij)?=?(I_GLCM_con(ij)+I_GLCM_hom(ij)+I_GLCM_cor(ij)+I_GLCM_ene(ij))/4;
????end
end
%
I2_con?=?I_GLCM_con((w+1)/2:m-(w-1)/2(w+1)/2:n-(w-1)/2);??%得到原始圖像大小的特征矩陣
I2_hom?=?I_GLCM_hom((w+1)/2:m-(w-1)/2(w+1)/2:n-(w-1)/2);?
I2_ene?=?I_GLCM_ene((w+1)/2:m-(w-1)/2(w+1)/2:n-(w-1)/2);?
I2_cor?=?I_GLCM_cor((w+1)/2:m-(w-1)/2(w+1)/2:n-(w-1)/2);?
I2_glcm?=?I_GLCM((w+1)/2:m-(w-1)/2(w+1)/2:n-(w-1)/2);
[nrowsncols]?=?size(I);
%%?用K均值聚類(lèi)法對(duì)特征空間中的點(diǎn)進(jìn)行聚類(lèi),分割圖像
%?k?=?round((rDims*cDims)/(100*100));?k?=?max(k8);?k?=?min(k16);
I3(:1)?=?reshape(I2_connrows*ncols1);
I3(:2)?=?reshape(I2_homnrows*ncols1);
I3(:3)?=?reshape(I2_enenrows*ncols1);
I3(:4)?=?reshape(I2_cornrows*ncols1);
%I3?=?reshape(I2_glcmnrows*ncols1);
%類(lèi)別數(shù)可根據(jù)具體圖像中的紋理類(lèi)數(shù)來(lái)定特征矩陣可以選擇I3的任意一列或整體,由分割效果來(lái)定
[map?centroids]?=?kmeans(I3?3);??
%?I4?=?reshape(mapnrowsncols);
%%?對(duì)不同的類(lèi)賦值
I_show?=?zeros(nrowsncols);
a?=?find(map==1);
I_show(a)?=?255;??????????%可以改變
b?=?find(map==2);
I_show(b)?=?0;????????????%可以改變
c?=?find(map==3);
I_show(c)?=?125;???????????%可以改變
%?d?=?find(map==4);
%?I_show(d)?=?200;??????????%可以改變
%?e?=?find(map==4);
%?I_show(e)?=?60;??????????%可以改變
I_show?=?uint8(I_show);
figure;
subplot(121);imshow(I);title(‘原圖‘)
subplot(122);imshow(I_show);title(‘結(jié)果圖像‘)
toc;
time?=?toc-tic;%計(jì)算運(yùn)行時(shí)間
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件??????65078??2017-05-10?13:13??灰度共生矩陣圖像分割_紋理\18.bmp
?????文件???????3126??2017-05-11?15:37??灰度共生矩陣圖像分割_紋理\Texture_mosaic.m
?????文件??????49708??2012-11-28?15:07??灰度共生矩陣圖像分割_紋理\Texture_mosaic_1.jpg
?????文件??????43587??2012-11-28?15:08??灰度共生矩陣圖像分割_紋理\Texture_mosaic_2.jpg
?????文件??????41155??2012-11-28?15:11??灰度共生矩陣圖像分割_紋理\Texture_mosaic_3.jpg
?????文件??????47552??2012-11-28?15:13??灰度共生矩陣圖像分割_紋理\Texture_mosaic_4.jpg
?????目錄??????????0??2017-08-14?17:10??灰度共生矩陣圖像分割_紋理
-----------?---------??----------?-----??----
???????????????250206????????????????????7
- 上一篇:PeMS部分公共數(shù)據(jù)集
- 下一篇:支付寶小程序 富文本解析插件
評(píng)論
共有 條評(píng)論