?? sbs.m
字號:
%----4.17編 順序后退法特征選擇
clear;
clc;
%--------特征導入 請自行修改
A=imread('lsy1.gif');
[M N]=size(A);
load coourfeature_0414_lsy1 %%%共生矩陣 96.14%
feature{1}=coourfeature(:,1);
feature{2}=coourfeature(:,2);
feature{3}=coourfeature(:,3);
load fuwavefeature_0413_lsy1 %%復小波 98.26%
for i=1:13
feature{3+i}=wavefeature(:,i);
end
load wavefeature_0413_feixia_lsy1%%%非下采樣小波 97.58%
for i=1:7
feature{16+i}=wavefeature(:,i);
end
load wavefeature_0417_lsy1%%小波 97.65%
for i=1:7
feature{23+i}=wavefeature(:,i);
end
%%%%%%%----------歸一化-歸一化
[m n]=size(feature{1});
for j=1:30%一共30組特征 這里 請自行修改
mx=max(feature{j});
mi=min(feature{j});
mxx=(mx-mi);
mii=ones([m n])*mi;
feature{j}=(feature{j}-mii)./mxx;
end
%%---------------SBS
chosen=[];dele=[];
for i=1:30
chosen=[chosen i];
end
for j=1:24 %%刪10個,留20個
J=zeros([1 30]);ii=0; %J(1)是刪1的結果,J(2)是刪除2 的結果......
for i=1:30 %???dele 是必要的么???????????????????????%一共30組特征 這里 請自行修改
[mm nn]=size(chosen);
for p=1:nn
if sum(i==dele)~=0
J(i)=0;
break;
else
for q=1:nn
if (chosen(q)~=i) & (chosen(p)~=i)
J(i)=J(i)-sum(sum((feature{chosen(q)}-feature{chosen(p)}).^2));
end
end
end
end
end
mi=min(J);
for cc=1:30
if J(cc)==0
J(cc)=mi;
end
end
[ma we]=max(J);
dele=[dele we];
for dd=1:nn
if chosen(dd)==we
chosen(dd)=[];
end
end
% chosen=[2 4 5 6 7 8 9 11 12 13 14 19 20 22 23 26 27 28 29 30];
[mm nn]=size(chosen);
tezh=[];
for i=1:nn
tezh=[tezh feature{chosen(i)}];
end
%%%%%%%%聚類
[IDC,U]=kmeans(tezh,2);
cc(IDC==1,1)=0;
cc(IDC==2,1)=0.75;
g=reshape(cc,M,N);
figure,imshow(g);
%%%%%%%%%%%%計算正確率
ju=ones(M)*0.75;
for i=1:M
for j=1:M/2
ju(i,j)=0;
end
end
ju2=g-ju;
prob=prod(size(find(ju2~=0)))/(m*n)
1-prob
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -