資源簡介
基于matlab實現pca主成分分析人臉識別,具體代碼可以運行

代碼片段和文件信息
%子函數:準備原始數據陣
function?[samples?samplesMean?rawNum?rolNum?originSize]=arrDataMat(path?imageNameList?newSize)????????
%[samples?samplesMean?rawNum?rolNum?originSize]=arrDataMat(path?imageNameList?newSize)?
%子函數,根據圖像名稱列表,讀取圖像數據,并灰度化,轉化成?樣本數*[newSize(1)*newSize(2)]數據陣
%輸入:
%path:圖像路徑
%imageNameList:圖像名稱列表,類型為元胞數組
%newSize:縮減后圖像尺度
%輸出:
%samples:數據矩陣(一行為一個樣本)
%samplesMean:數據陣平均值(行向量)
%rawNum:樣本數
%rolNum:原始的變量維數,即像素的行*像素的列
%originSize:縮減前圖片尺寸
rawNum?=?size(imageNameList1);?%rawNum:樣本數hang
rolNum=newSize(1)*newSize(2);?%原始維度lie
samples?=?zeros(rawNum?rolNum);
img?=?imread([pathimageNameList{1}]);
originSize?=?size(img);
originSize?=?originSize(1:2);
clear?img;
%準備樣本矩陣
?for?k=1:rawNum
?????imageTemp_?=?imread([pathimageNameList{k}]);
?????imageTemp?=?im2double(imageTemp_);
?????if?length(size(imageTemp))==3
????????imageTemp?=?rgb2gray(imageTemp);?%灰度化
????????imageTemp?=?histeq(imageTemp);?%直方圖均衡化
?????end
????imageTemp2?=?imresize(imageTemp?newSize);
????imageTemp3??=?imageTemp2(:)‘;
????samples(k:)?=?imageTemp3;
end
samplesMean?=?mean(samples);?%樣本均值
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1279??2018-04-03?15:22??complete_pca\arrDataMat.m
?????文件????????372??2018-04-02?21:57??complete_pca\getFileList.m
?????文件????1139748??2018-04-11?21:30??complete_pca\pca_data.mat
?????文件???????1063??2018-04-11?20:43??complete_pca\pca_rencgnation.m
?????文件???????1669??2018-04-11?21:04??complete_pca\pca_test.m
?????文件???????2532??2018-04-03?15:19??complete_pca\pca_train.m
?????文件????????645??2018-04-02?21:57??complete_pca\simitzj.m
?????目錄??????????0??2018-04-28?22:28??complete_pca
-----------?---------??----------?-----??----
??????????????1147308????????????????????8
評論
共有 條評論