├── README.md ├── 1.jpg ├── 10.jpg ├── 2.jpg ├── 3.jpg ├── 4.jpg ├── 5.jpg ├── 6.jpg ├── 7.jpg ├── 8.jpg ├── 9.jpg ├── test.jpg ├── 说明书.docx ├── Untitled.m ├── PCA.m ├── find.m └── imgdata.m /README.md: -------------------------------------------------------------------------------- 1 | # matlab 2 | Matlab基于PCA算法的简单图像人脸识别 3 | -------------------------------------------------------------------------------- /1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LI-Y-J/matlab/HEAD/1.jpg -------------------------------------------------------------------------------- /10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LI-Y-J/matlab/HEAD/10.jpg -------------------------------------------------------------------------------- /2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LI-Y-J/matlab/HEAD/2.jpg -------------------------------------------------------------------------------- /3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LI-Y-J/matlab/HEAD/3.jpg -------------------------------------------------------------------------------- /4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LI-Y-J/matlab/HEAD/4.jpg -------------------------------------------------------------------------------- /5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LI-Y-J/matlab/HEAD/5.jpg -------------------------------------------------------------------------------- /6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LI-Y-J/matlab/HEAD/6.jpg -------------------------------------------------------------------------------- /7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LI-Y-J/matlab/HEAD/7.jpg -------------------------------------------------------------------------------- /8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LI-Y-J/matlab/HEAD/8.jpg -------------------------------------------------------------------------------- /9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LI-Y-J/matlab/HEAD/9.jpg -------------------------------------------------------------------------------- /test.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LI-Y-J/matlab/HEAD/test.jpg -------------------------------------------------------------------------------- /说明书.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LI-Y-J/matlab/HEAD/说明书.docx -------------------------------------------------------------------------------- /Untitled.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LI-Y-J/matlab/HEAD/Untitled.m -------------------------------------------------------------------------------- /PCA.m: -------------------------------------------------------------------------------- 1 | 2 | function Cell_all = PCA(img,k) 3 | 4 | [m,n] = size(img); 5 | img_mean = mean(img); 6 | img_mean_all = repmat(img_mean,m,1); 7 | Z = imgdata - img_mean_all; 8 | T = Z'*Z; 9 | [V,D] = eigs(T,k); 10 | img_new = img*V*D; 11 | Cell_all = {img_new,V,D}; -------------------------------------------------------------------------------- /find.m: -------------------------------------------------------------------------------- 1 | 2 | function Find = find(Cell_all,img2find) 3 | 4 | img_all = Cell_all{1}; 5 | [m1,n1] = size(img_all); 6 | 7 | V = Cell_all{2}; 8 | D = Cell_all{3}; 9 | 10 | namud = 0.5; 11 | 12 | pic = rgb2gray(img2find); 13 | pic = imresize(pic,namud); 14 | 15 | [m2,n2] = size(pic); 16 | pic = reshape(pic,1,m2*n2); 17 | pic = double(pic)/255; 18 | 19 | pic_done = pic*V*D; 20 | Ma = max(max(pic_done)); 21 | Mi = min(min(pic_done)); 22 | pic_done = pic_done/(Ma - Mi); 23 | 24 | for i=1:m1 25 | 26 | Ma1 = max(img_all(i,:)); 27 | Mi1 = min(img_all(i,:)); 28 | img_all(i,:) = img_all(i,:)/(Ma1 - Mi1); 29 | error(i) = norm(img_all(i,:)-pic_done); 30 | end 31 | 32 | Find = find(error == min(error)); 33 | -------------------------------------------------------------------------------- /imgdata.m: -------------------------------------------------------------------------------- 1 | 2 | function ImgData = imgdata() 3 | 4 | namud = 0.5; 5 | pic1 = rgb2gray(imread('1.jpg')); pic1 = imresize(pic1,namud); 6 | pic2 = rgb2gray(imread('2.jpg')); pic2 = imresize(pic2,namud); 7 | pic3 = rgb2gray(imread('3.jpg')); pic3 = imresize(pic3,namud); 8 | pic4 = rgb2gray(imread('4.jpg')); pic4 = imresize(pic4,namud); 9 | pic5 = rgb2gray(imread('5.jpg')); pic5 = imresize(pic5,namud); 10 | pic6 = rgb2gray(imread('6.jpg')); pic6 = imresize(pic6,namud); 11 | pic7 = rgb2gray(imread('7.jpg')); pic7 = imresize(pic7,namud); 12 | pic8 = rgb2gray(imread('8.jpg')); pic8 = imresize(pic8,namud); 13 | pic9 = rgb2gray(imread('9.jpg')); pic9 = imresize(pic9,namud); 14 | pic10 = rgb2gray(imread('10.jpg')); pic10 = imresize(pic10,namud); 15 | 16 | [m,n] = size(pic1); 17 | 18 | pic_all = {pic1,pic2,pic3,pic4,pic5,pic6,pic7,pic8,pic9,pic10}; 19 | for i=1:10 20 | 21 | ImgData(i,:) = reshape(pic_all{i},1,m*n); 22 | end 23 | 24 | ImgData = double(ImgData)/255; 25 | --------------------------------------------------------------------------------