-
大小: 6.62MB文件類型: .rar金幣: 2下載: 0 次發布日期: 2023-09-24
- 語言: Matlab
- 標簽: Matlab??高光譜??IndianaPines??
資源簡介
我班牛人用產生式算法(GDA)原理編寫的Matlab代碼,最后生成把地物分成200類后的圖片,并且上色,很直觀。

代碼片段和文件信息
close?all;clear;clc;
load?IndianaPines.mat;
tic
[vardataAmount]=size(pixels);
TotalLabel?=?length(unique(Label));
labels=[];
%divide?Train?and?Test?set
while?(length(labels)~=TotalLabel)
????choose?=?logical(round(rand(1dataAmount)));
????trainSet???=?pixels(:choose);
????trainLabel?=?Label(choose);
????testSet?=?pixels(:~choose);
????testLabel?=?Label(~choose);
????labels?=?unique(trainLabel);
end
%calcuate?paramter
phi?=?zeros(1TotalLabel);
miu?=?zeros(varTotalLabel);
trainAmount?=?length(trainLabel);
testAmount?=?length(testLabel);
for?i=1:TotalLabel
????c?=?(trainLabel==labels(i));
????phi(i)=sum(c)/trainAmount;
????miu(:i)=mean(trainSet(:c)2);
end
delta?=?trainSet?-?miu(:trainLabel+1);
siginv?=?inv(delta*delta‘/trainAmount);
%recognize
p?=?zeros(1TotalLabel);
recogLabel?=?testLabel;
logPhi?=?log(phi);
for?i=1:testAmount
????x?=?testSet(:i)*ones(1TotalLabel)-miu;
????p?=?logPhi?-?0.5*sum(x.*(siginv*x));
????[maxPmaxI]?=?max(p);
????recogLabel(i)?=?uint8(maxI-1);
end????
%show?answer
recogAmount?=?sum(recogLabel==testLabel);
mistakes?=?zeros(TotalLabelTotalLabel);
for?i=1:testAmount
????if?recogLabel(i)~=testLabel(i)
????????mistakes(testLabel(i)+1recogLabel(i)+1)=1;
????end
end
fprintf(‘Being?classificated?wrong\n‘);
for?i=1:TotalLabel
????fprintf(‘the?class?%d?was?wrongly?classified?to‘i-1);
????fprintf(‘%3d‘labels(logical(mistakes(i:))));
????fprintf(‘\n‘);
end
fprintf(‘\n‘);
fprintf(‘\n‘);
fprintf(‘the?correct?recognizition?rate:?%d/%d=%f%%\n‘recogAmounttestAmountrecogAmount/testAmount*100);
toc;
colorMap?=?rand(TotalLabel3);
colorMap(1:)=0;
img?=?zeros(145145);
img(:)?=?Label;
subplot?121;
imshow(imgcolorMap);
title(‘original?image‘);
img(~choose)=?recogLabel;
subplot?122;
imshow(imgcolorMap);
title(‘recognized?image‘);
%free?memory
clear?c?choose?dataAmount?delta?i?labels?logPhi?maxP?miu;
clear?p?phi?siginv?recogAmount?var?x?TotalLabel?maxI?testAmount?trainAmount;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2004??2012-06-30?00:00??GDA產生式算法matlab代碼(帶高光譜文件)\GDA.m
?????文件????6940656??2012-05-15?23:53??GDA產生式算法matlab代碼(帶高光譜文件)\IndianaPines.mat
?????目錄??????????0??2012-09-06?09:04??GDA產生式算法matlab代碼(帶高光譜文件)
-----------?---------??----------?-----??----
??????????????6942660????????????????????3
評論
共有 條評論