資源簡(jiǎn)介
自適應(yīng)波段選擇 ABS算法,在計(jì)算高光譜的波段選擇中用到的算法

代碼片段和文件信息
function?ABS?=?ABS?(image)
tic
[mnb]=size(image);
mean(1:b)=0;%每幅影像像素的平均值
for?band=1:b
????sum=0;
????for?x=1:m
????????for?y=1:n
????????????sum=sum+image(xyband);
????????end
????end
????sum=sum*1.0/(m*n);
????mean(band)=sum;
end
%先求標(biāo)準(zhǔn)差
standard(1b)=0;%存儲(chǔ)每個(gè)波段內(nèi)的標(biāo)準(zhǔn)差
for?band=1:b
????sum=0;
????for?x=1:m
????????for?y=1:n
????????????sum=sum+(image(xyband)-mean(band))^2;
????????end
????end
????sum=sum*1.0/(m*n);
????standard(band)=sqrt(sum);
end
%求相關(guān)系數(shù)
R(1b-1)=0;%記錄第i個(gè)波段和第i+1個(gè)波段之間的相關(guān)系數(shù)
for?band=1:b-1
????mean1=0;
????mean2=0;
????mean3=0;%計(jì)算需要用到的三個(gè)中間均值變量
????for?x=1:m
????????for?y=1:n
????????????mean1=mean1+(image(xyband)-mean(band))*(image(xyband+1)-mean(band+1));
????????????mean2=mean2+(image(xyband)-mean(band))^2;
????????????mean3=mean3+(image(xyband+1)-mean(band+1))^2;
????????end
????end
????mean1=mean1*1.0/(m*n);
????mean2=mean2*1.0/(m*n);
????mean3=mean3*1.0/(m*n);
????
????R(band)=mean1*1.0/(sqrt(mean2)*sqrt(mean3));
end
%計(jì)算ABS指數(shù)
index(1:b)=0;%在這里指數(shù)雖然賦了波段數(shù)的長(zhǎng)短,但是考慮到要用到與前后波段的相關(guān)系數(shù),于是頭尾波段不做計(jì)算
for?band=2:b-1
????index(band)=standard(band)*1.0/((R(band-1)+R(band))*1.0/2);
end
index
[resultindexsort]=sort(index‘descend‘);%如果是一維數(shù)組那么第二個(gè)參數(shù)不要填,也不要填1
result
indexsort
toc
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件???????1412??2014-04-25?15:56??ABS.m
-----------?---------??----------?-----??----
?????????????????1412????????????????????1
評(píng)論
共有 條評(píng)論