clear all
close all
clear
clc
tic
%%% LDA %%%%%%
% % % % % % % % % % % % % % 前處理
% % % class = 1000;
% % % t_class = 500;
% % % % % % % % % % % % % % % % % % % % % % using ORL face database--------------------
% % % % % % % % % % % % % % % % % % %小波降維---------------------
% % % % % % % % % % % training section
% % % for i = 1:class
% % % eval(['X = imread(''training1/',int2str(i),'.png'');']);
% % % X = imresize(X,[10 , 10]); %change the size
% % % X = double(X);
% % % [c , s] = wavefast(X,2,'haar'); % 2--降多少階
% % % X_1 = wave2gray(c, s);
% % % Y = X_1(1:s(2, 1)-1,1:s(2, 2)-1); % 從S中取值出來
% % % [m,n,p] = size(Y);
% % % T(:,i) = reshape(Y,m*n,1);
% % % end
% % % % save T
% % % % % % % testing section
% % % for i = 1:t_class
% % % eval(['X1 = imread(''testing/',int2str(i),'.png'');']);
% % % X1 = imresize(X1,[10 , 10]); %change the size
% % % X1 = double(X1);
% % % [c , s] = wavefast(X1,2,'haar'); % 2--降多少階
% % % X1_1 = wave2gray(c, s);
% % % Y1 = X1_1(1:s(2, 1)-1,1:s(2, 2)-1); % 從S中取值出來
% % % [m,n,p] = size(Y1);
% % % T1(:,i) = reshape(Y1,m*n,1);
% % % end
% % % % save T1
% % %
% % %
% % % M = 40; %Input class;
% % % N = class/M; %Input images in each class;
% % %
% % %
% % % % % % % %find between-class scatter matrix
% % % for i = 1:M;
% % % j = (i-1)*N+1;
% % % k = i*N;
% % % total_x = mean(T,2);
% % % x_c(:,i) = mean(T(:,j:k),2);
% % % G(:,i) = x_c(:,i)-total_x ;
% % % Sb = G(:,i)*G(:,i)';
% % %
% % % [m, n]= size(Sb);
% % % SSb(:,i) = reshape(Sb,m*n,1);
% % % Sb = sum(SSb,2);
% % % Sb = reshape(Sb,m,n);
% % % end
% % %
% % %
% % % % % % % %find within-class scatter matrix
% % % for i = 1:M;
% % % j = (i-1)*N+1;
% % % k = i*N;
% % % XCbar(:,i) = mean(T(:,j:k),2);
% % % XCm = T(:,j:k);
% % % for s = 1:N
% % % G(:,s) = XCm(:,s)-XCbar(:,i);
% % % H = G*G';
% % % end
% % % [m, n]= size(H);
% % % HHw(:,i) = reshape(H,m*n,1);
% % % Hw = sum(HHw,2);
% % % Hw = reshape(Hw,m,n);
% % % end
% % %
% % % IHw= inv(Hw);
% % % EIG = IHw*Sb;
% % % [eigvec, eigval] = eig(EIG);
% % % W = eigvec ;
% % %
% % % % % % % % 後可以接歐式距離作新系統
% % % % % % % % 經轉換後之特徵參數
% % % Q = W*T; % training section
% % % Q1 = W*T1; % testing section
% % %
% % % save Q
% % % save Q1
load Q
load Q1
% % % % % % % % % % %變數部份 ---------------------
class = 500; % input images
M = 20; %Input class
N = class/M; %Input images in each class;
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
% TT = 10;
% Q = Q(1:50,1:300);
% Q1 = Q1(1:TT,1:300);
% 亂數取圖+1
% TE = 10;
% for te = 1:TE;
% A = rand(te,1)*class;
% ra1 = floor(A);
% ra2 = ra1(te,:);
% % % % % % % %最接近特徵線-----------------------------------------------
H1 = 1;
H2 = 100;
H3 = H2-H1+1;
for tt = H1:H2;
z = Q1(:,tt);
% z = Q(:,ra2);
for s = 1:M; % 1-40
t = (s-1)*N+1; % 1 26 51 ...
q = s*N; % 25 50 75 ...
D = Q(:,t:q);
for i = 1:N-1; % 1-24
for j = i+1:N; % 2-25
T = D(:,j)-D(:,i); % z2-z1
if z == D(:,i);
zp = D(:,i); % zp = z1
elseif z == D(:,j);
zp = D(:,j); % zp = z2
else
T1 = z-D(:,i); % z-z1
G1 = dot(T1,T);
G2 = dot(T,T);
GAMA = G1/G2;
zp = D(:,i) + GAMA*T;
% %舊寫法
% GAMA1(i,j) = G1/G2;
end
d(i,j) = sqrt(sum(abs(z - zp).^2));
[m1,n1] = size(d);
S = reshape(d,m1*n1,1);
end
end
SS(:,s) = S;
dd(:,t:q) = d;
end
% % % % 抽值
SSS(1,:) = SS(25,:);
SSS(2:3,:) = SS(49:50,:);
SSS(4:6,:) = SS(73:75,:);
SSS(7:10,:) = SS(97:100,:);
SSS(11:15,:) = SS(121:125,:);
SSS(16:21,:) = SS(145:150,:);
SSS(22:28,:) = SS(169:175,:);
SSS(29:36,:) = SS(193:200,:);
SSS(37:45,:) = SS(217:225,:);
SSS(46:55,:) = SS(241:250,:);
SSS(56:66,:) = SS(265:275,:);
SSS(67:78,:) = SS(289:300,:);
SSS(79:91,:) = SS(313:325,:);
SSS(92:105,:) = SS(337:350,:);
SSS(106:120,:) = SS(361:375,:);
SSS(121:136,:) = SS(385:400,:);
SSS(137:153,:) = SS(409:425,:);
SSS(154:171,:) = SS(433:450,:);
SSS(172:190,:) = SS(457:475,:);
SSS(191:210,:) = SS(481:500,:);
SSS(211:231,:) = SS(505:525,:);
SSS(232:253,:) = SS(529:550,:);
SSS(254:276,:) = SS(553:575,:);
SSS(277:300,:) = SS(577:600,:);
[m2,n2] = size(SSS);
S_final = reshape(SSS,m2*n2,1);
[junk,idx] = sort(S_final);
idx1 = idx(1,1);
% % % % % % % % % % % % % % % %
r = 300;
for i =1:40;
if idx1 >= r*(i-1)+1 & idx1 <= r*(i)
idx2 = i;
end
end
r = 25;
for i =2:42;
if tt >= r*(i-2)+1 & tt <= r*(i-1)+1
ra3 = i-1;
end
end
% % % % % % % % % % % % % % % % % %
% idx2
%
DATA(tt,1) = ra3;
DATA(tt,2) = idx2;
count = 0;
if idx2 == ra3;
count = (count+1);
cou(tt,:) = count;
end
end
% % % % % % % % % % % % % % % % % % % % % % % % % rr
count1 = sum(cou);
percent = (count1/H3)*100 ;
TIME = toc;
fprintf('Recognition Testing_Times:%.3f (times)\n',tt);
fprintf('Recognition Rate:%.3f (percent)\n',percent);
fprintf('Recognition Time:%.3f (s)\n',TIME);
% % % % % % % % % Conclusion % % % % % % % % % % % %
% times percent time
% 100 89 % 111.307 sec
% 200 85 % 220.229 sec
% 300 86 % 330.480 sec
% 400 87.25% 443.754 sec
% 500 89.8% 550.263 sec
% % % % % % % % % % % % % % % % % % % % % % % % % % r
% % % % % Recognition Testing_Times:100.000 (times)
% % % % % Recognition Rate:89.000 (percent)
% % % % % Recognition Time:56.534 (s)
% % % % % % % % % % % % % % % % % % % % % %
grid on
plot(SSS(1:10,1),SSS(11:20,1),'+',SSS(1:10,2),SSS(11:20,2),'o',SSS(1:10,3),SSS(11:20,3),'*')
title('2-D-Main of LDA parameters');
grid on
LDA代码实现(Matlab版)
4星 · 超过85%的资源 需积分: 50 186 浏览量
2011-04-22
15:09:13
上传
评论 12
收藏 4.24MB RAR 举报
womenyaoshengli
- 粉丝: 1
- 资源: 2
最新资源
- 基于MQTT的智能宠物投喂系统
- 312749069629470selfieU重绘.apk
- http%3A%2F%2Fimg.wsdl.vivo.com.cn%2Fappstore%2Fdeveloper%2Ficon%2F201412%2F201412231038336
- 主要记录B站up主莫烦matplotlib教程中的代码.zip
- Java SE Development Kit 8u411 Windows x64 Installer
- 用于科学绘图的 Matplotlib 样式.zip
- Java SE Development Kit 11.0.23 Windows x64 Installer
- 毕业设计-后端项目-网站民宿展示网站SSM
- 基于python绘图,程序详细展示了绘图过程中详尽的命令语句,使得图片达到可发表程度 .zip
- Java SE Development Kit 11.0.23 macOS x64 DMG Installer
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
- 4
- 5
- 6
前往页