资源简介
基于ICA(独立成分分析)方法进行人脸识别,人脸库已经给出
代码片段和文件信息
clear all
clc
prompt = {‘Enter test image name (a number between 1 to 10):‘};
dlg_title = ‘Input of ICA-based Face Recognition System‘;
num_lines= 1;
def = {‘1‘};
TestImage = inputdlg(promptdlg_titlenum_linesdef);
TestImage = strcat(‘F:\研一课程\图像分析与计算机视觉\ICA face recognition\TestDatabase‘‘\‘char(TestImage)‘.BMP‘);
im = imread(TestImage);
allsamples=[]; %所有训练图像
for i=1:20
%a=imread( strcat( ‘D:\Tools\Matlab\matlab new project\PCA_based Face Recognition System\TrainDatabase‘ num2str(i)‘.bmp‘); % 读取文件夹里所有图片
% figure(i)imshow(a);
str = int2str(i);%将整形转换成字符型
str = strcat(‘\‘str‘.bmp‘);%str=‘\i.bmp‘
str = strcat(‘F:\研一课程\图像分析与计算机视觉\ICA face recognition\TrainDatabase‘str);%读入图片i.bmp
a = imread(str); %读入图片i.bmp
b=a( 1:100*100 ); % b是行矢量 1×N,其中N=10000,提取顺序是先列后行,即从上到下,从左到右
b=double(b);
allsamples=[ allsamples; b ]; % allsamples是一个M*N 矩阵,allsamples中每一行数据代表一张图片,其中M=10
end
[MT]=size(allsamples); %获取输入矩阵的行/列数,行数为观测数据的数目,列数为采样点数
average=mean(allsamples‘)‘;%均值
for i=1:M
X(i:)=allsamples(i:)-average(i)*ones(1T);
end
%白化/球化
Cx=cov(X‘1);%计算协方差矩阵Cx
[eigvectoreigvalue]=eig(Cx);%计算Cx的特征值和特征向量
W=eigvalue^(-1/2)*eigvector‘;%白化矩阵
Z=W*X;%新的观测信号
%迭代
Maxcount=10000;%最大迭代次数
Critical=0.00001;%判断是否收敛
m=M;%需要估计的分量的个数
W=rand(m);%产生区间(0,1)均匀分布的随机数,是m*m的矩阵
for n=1:m
WP=W(:n);%初始权矢量(任意),只产生了一个列向量
%Y=WP‘*Z
%G=Y.^3;%G为非线性函数,可取y^3等
%GG=3Y.^2;G的导数
count=0;
LastWP=zeros(m1);%全0列向量
W(:n)=W(:n)/norm(W(:n));
while norm(WP-LastWP)>Critical && norm(WP+LastWP)>Critical
%abs(WP-LastWP)&abs(WP+LastWP)>Critical %判断收敛的句子
count=count+1;%迭代次数
LastWP=WP;%上次迭代的值
%WP=1/T*Z*((LastWP‘*Z).^3)‘-3*LastWP;
for i=i:m
WP(i)=mean(Z(i:).*(tanh((LastWP)‘*Z)))-(mean(1-(tanh((LastWP))‘*Z).^2)).*LastWP(i);
end
WPP=zeros(m1);
for j=1:n-1
WPP=WPP+(WP‘*W(:j))*W(:j);
end
WP=WP-WPP;
WP=WP/(norm(WP));
if count==Maxcount
fprint(‘未找到相应的信号‘);
return ;
end
end
W(:n)=WP;
end
Z=W‘*Z;
allcoor =allsamples*Z‘ ;
b=im(1:10000);
b=double(b);
tcoor= b*Z‘;
for k=1:20
temp(k)=norm(tcoor-allcoor(k:));
end
[distRecognized_index]=sort(temp);
imshow(im)
title(‘Test Image‘);
a=Recognized_index(1);
matchp= strcat(‘F:\研一课程\图像分析与计算机视觉\ICA face recognition\TrainDatabase‘‘\‘int2str(Recognized_index(1))‘.BMP‘);
figureimshow(matchp);
title(‘Matched image‘);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3038 2013-06-16 17:01 ICA face recognition\recognition.m
文件 30966 2013-06-16 14:17 ICA face recognition\TestDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TestDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TestDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TestDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TestDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TestDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TestDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TestDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TestDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TestDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TrainDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TrainDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TrainDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TrainDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TrainDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TrainDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TrainDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TrainDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TrainDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TrainDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TrainDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TrainDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TrainDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TrainDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TrainDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TrainDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TrainDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TrainDataba
文件 30966 2013-06-16 14:17 ICA face recognition\TrainDataba
............此处省略8个文件信息
- 上一篇:final-report-n-ppt
- 下一篇:等边三角形麦克风阵列语音增强的程序
相关资源
- Duda模式分类Pattern Classification MATLAB 代
- 独立成分分析 ICA的matlab代码实现
- 基于MATLAB的库外人脸识别GUI界面源码
- BP人脸识别
- 局部二值模式进行编码的人脸识别
- BP Classification 基于matlab神经网络的遥
- Serial Port Communication matlab实现的串口采
- face recognition 稀疏表示人脸分类与识别
- 简单的Matlab人脸识别
- 帝国竞争算法资料
- pca agabor 人脸识别
- 独立分量ICA图像特征提取程序和图片
- 比较分析协作通信三个节点时系统 (
- HoG SVm 人脸识别方
- matlab结课大作业人脸识别是否戴口罩
- matlab 人脸识别.rar
- 人脸识别matlab代码
- Numerical Methods using MATLAB 无水印原版
- LDA线性判别分析人脸识别MATLAB代码/
- LBP-DBN人脸识别matlab代码
- MIMO-OFDM Wireless Communications with MATLAB
- 基于MATLAB的人脸五官识别
- principles_of_communications
- 基于BP算法的人脸识别程序MATLAB
- PCA 和欧氏距离方法设计的人脸识别
- 基于PCA算法实现人脸识别完整代码,
- FastIca盲源分离算法(Matlab编写)
- Matlab PCA+SVM人脸识别包含GUI界面设计
- fastica的matlab实现
- matlab fastica工具箱
评论
共有 条评论