xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 188KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-07
  • 語(yǔ)言: Matlab
  • 標(biāo)簽: Eigenface??

資源簡(jiǎn)介

用MATLAB實(shí)現(xiàn)Eigenface算法。 使用orl_face數(shù)據(jù)庫(kù)。 有兩個(gè)main函數(shù),一個(gè)是把一個(gè)圖像數(shù)據(jù)轉(zhuǎn)為一行,另外是吧圖像數(shù)據(jù)轉(zhuǎn)為一列。

資源截圖

代碼片段和文件信息

%?eigenface

clear?all
close?all
clc

%step?1:Get?some?data
num?=?20;
[height?width]?=?size(imread(‘data\1.pgm‘));
Data(height*widthnum)?=?0;?%convert?one?image?data?into?a?column

for?i=1:num
????path?=?[‘data\‘num2str(i)‘.pgm‘];
????temp?=?imread(path);
????temp?=?im2double(temp);
????Data(:i)?=?reshape(temp?[]?1);???%convert?one?image?data?into?a?column
end

%setp?2:Subtract?the?mean
MeanValue?=?mean(Data?2);
OriginalMean?=?repmat(MeanValue1?size(Data2));
DataAdjust?=?Data?-?OriginalMean;

%step?3:Calculate?the?covariance?matrix
%?注意這里的cov函數(shù),如果傳入?yún)?shù)是矩陣,那么行代表了維度,也就是上面的x1x2x3xn。
%?所以,這里DataAdjust需要轉(zhuǎn)置一下。
%?Covariance?=?cov(DataAdjust‘);
%?Covariance_2?=?(DataAdjust?*?DataAdjust‘)./(size(Data2)-1);?%驗(yàn)證了A*A‘/(N-1)等于協(xié)方差矩陣

%step?4:calculate?the?eigenvectors?and?eigenvalues
%?[EigenVectors?EigenValues]?=?eig(Covariance);?%返回值EigenValues按照從小到大排序的,所以,從靠后的列選擇主成分

%step?5:choosing?components?and?forming?a?feature?vector.
[row?col]?=?size(Data);
if?row?>=?col
????length?=?col;
else
????length?=?row;
end
%?SortEigenVectors?=?fliplr(EigenVectors);?%特征向量排序,第一列對(duì)應(yīng)的特征值最大,依次往后
%?FeatureVectors?=?SortEigenVectors(:1:length-1);?%%select?part?the?EigenVectors?as?the?components?here?is?the?first?length-1?columns

%用另外一種方法得到FeatureVectors針對(duì)的是數(shù)據(jù)維數(shù)較大的情況這種方法更快
C1?=?DataAdjust‘?*?DataAdjust;
[C1_EigenVectors?C1_EigenValues]?=?eig(C1);
V?=?DataAdjust?*?C1_EigenVectors;
%進(jìn)行歸一化?這一步在好多敘述里都沒(méi)有提及到
EigenVectors_2?=?V?./?(ones(size(V?1)1)?*?sqrt(sum(V?.*?V)));
%選取pricipal?components
SortEigenVectors_2?=?fliplr(EigenVectors_2);
FeatureVectors?=?SortEigenVectors_2(:1:length-1);?

%選取一個(gè)特征向量進(jìn)行展示,即所謂的特征臉,目前一共有20-1=19個(gè)特征臉
%?EigenFace_1?=?reshape(FeatureVectors(:2)height?width);
%?figure
%?imshow(EigenFace_1?[]);

%圖像數(shù)據(jù)投影到特征空間上
PatternVectors?=?FeatureVectors‘?*?DataAdjust;?%每一列代表一幅圖像投影到n-1維的空間里。


%測(cè)試圖像
%將一張圖像映射到特贈(zèng)空間后得到的模式向量,也就是在n-1維上的各個(gè)投影
TestData?=?imread(‘D:\Matlab\3_eigenface\study\orl_faces\s20\2.pgm‘);
temp?=?im2double(TestData);
TestData?=?reshape(temp?[]?1);
TestDataPatternVector?=?FeatureVectors‘?*?(TestData?-?MeanValue);?
%利用歐氏距離進(jìn)行比較。
result(1?length)?=?0;
for?i=1:length
????temp?=?(PatternVectors(:i)?-?TestDataPatternVector).^2;
????result(1i)?=?sqrt(sum(temp));
end
[minimum?index]?=?min(result);
X?=?[‘Match?the?s‘?num2str(index)?‘?successfully.??Congratulations!‘];
disp(X)









?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-12-07?19:17??data\
?????文件???????10318??2016-12-07?16:01??data\1.pgm
?????文件???????10318??2016-12-07?16:01??data\10.pgm
?????文件???????10318??2016-12-07?16:01??data\11.pgm
?????文件???????10318??2016-12-07?16:01??data\12.pgm
?????文件???????10318??2016-12-07?16:01??data\13.pgm
?????文件???????10318??2016-12-07?16:01??data\14.pgm
?????文件???????10318??2016-12-07?16:01??data\15.pgm
?????文件???????10318??2016-12-07?16:01??data\16.pgm
?????文件???????10318??2016-12-07?16:01??data\17.pgm
?????文件???????10318??2016-12-07?16:01??data\18.pgm
?????文件???????10318??2016-12-07?16:01??data\19.pgm
?????文件???????10318??2016-12-07?16:01??data\2.pgm
?????文件???????10318??2016-12-07?16:01??data\20.pgm
?????文件???????10318??2016-12-07?16:01??data\3.pgm
?????文件???????10318??2016-12-07?16:01??data\4.pgm
?????文件???????10318??2016-12-07?16:01??data\5.pgm
?????文件???????10318??2016-12-07?16:01??data\6.pgm
?????文件???????10318??2016-12-07?16:01??data\7.pgm
?????文件???????10318??2016-12-07?16:01??data\8.pgm
?????文件???????10318??2016-12-07?16:01??data\9.pgm
?????文件????????2676??2016-12-15?16:02??main_4_1.m
?????文件????????2722??2016-12-16?21:09??main_4_2.m

評(píng)論

共有 條評(píng)論