중화사전망 - 중국어 사전 - 누가 MATLAB 프로그램을 만드는 법을 가르쳐 줄 수 있습니까? 전부 영어야, 알아듣지도 못하고, 안 돼!

누가 MATLAB 프로그램을 만드는 법을 가르쳐 줄 수 있습니까? 전부 영어야, 알아듣지도 못하고, 안 돼!

기능 PCA (경로, 열차 목록, 하위 모듈)

%

프로토타입 퍼센트

% 함수 PCA (경로, 교육 목록, 하위 데이터)

%

% 사용 예

% PCA(' C:/FERET _ normalized/', trainList500Imgs, 200);

%

% 일반 설명

% 은 (는) 표준 Turk-Pentland Eigenfaces 방법을 구현했습니다. 결승전으로 삼다

% result-pcaProj 행렬을 모든 이미지와 함께 디스크에 저장합니다

% 는 PCA 에서 찾은 2 차원 공간에 투영됩니다.

%

% 참조

인식을 위한 특징적인 얼굴, 인지잡지

% 신경과학, 제 3 권, 1 호, 7 1-86 면

%

% M.A. Turk, A.P. Pentland, 얼굴 인식 기능을 사용하는 얼굴 인식, 프로그램

% IEEE 컴퓨터 비전 및 패턴 인식 회의,

% 3-6 6 월 199 1, 미국 하와이 마우이, 586-59 1 페이지

%

%

% 입력:

% path-FERET 데이터베이스에서 표준화된 이미지의 전체 경로입니다

% trainList-교육에 사용되는 이미지 목록입니다. 이름은

% 은 (는) 확장명이 및 이 없습니다. Pgm 이 자동으로 추가됩니다

% subDim-유지할 차원 (필요한 하위 공간

% 차원) 을 참조하십시오. 이 매개변수가 무시되면 최대

% 0 이 아닌 차원은 예약됩니다: (트레이닝 이미지 수)-1

%

% 출력:

% 함수는 다음 출력을 생성하여 디스크에 저장합니다.

% DATA-matrix. 각 열은 벡터 모양 이미지입니다

%-이 행렬의 크기는 (픽셀 수) x (이미지 수), uint8 입니다

% imSpace-데이터와 동일하지만 교육 세트의 이미지일 뿐입니다

% psi-평균 얼굴 (트레이닝 이미지)

% zeroMeanSpace-imSpace 의 각 행에서 평균 면을 뺍니다

% pcaEigVals-고유 값

% w-저차원 PCA 부분 공간

% pcaProj-차원 공간에 투영된 모든 이미지

%

% 주석/설명

% * 다음 파일은 함수와 같은 경로에 있어야 합니다

% 또는 Matlab 경로 중 하나:

% 1. 모든 38 16 FERET 이미지 목록을 포함합니다

%

% * * 결과 하위 공간의 각 차원은 단위 길이로 정규화됩니다

%

% * * * Matlab 7 을 사용하여 개발

%

%

% 개정 기록

%-

%

% 관련 기능 (참고)

% createDistMat, feret

%

약%

% 생성 시간: 2005 년 9 월 3 일

% 마지막 업데이트:-

% 개정: 1.0

%

% 저자: 크레시미르 드라치

% mailto:kdelac@ieee.org

% URL:

%

% 이 코드를 사용한 연구의 결과로 논문을 발표했을 때

% 또는 그 일부를 보려면 다음 파일을 참조하십시오.

% 드라치 K, 게지 M, 게지 S, 독립 비교 연구의 주성분 분석, 독립 성분 분석, 선형 판별 분석

FERET 데이터 세트의%, 국제 이미징 시스템 및 기술 잡지,

% 제 15 권, 2006 년 제 5 호, 252-260 면

%

% 하위 치수가 제공되지 않은 경우 n-1 치수는 다음과 같습니다

% 예약됨. 여기서 n 은 트레이닝 이미지 수입니다

만약 나이든< 3 이

Subdim = dim-1;

끝;

표시 (''')

ListAll 로드

% 상수

Numim = 3816;

데이터 매트릭스의 메모리 할당 백분율

Fprintf ('데이터 매트릭스 만들기 \n')

Tmp = imread ([pathchar (listall (1))'. Pgm']);

[m, n] = 크기 (tmp); % 그림 크기-나중에 사용할 것입니다! ! !

DATA = uint8 (0 (m*n, numIm));); 할당된 메모리 비율

Str tmp 를 지웁니다

% 데이터 매트릭스 생성

I = 1: numIm 의 경우

Im = imread ([path char(listAll(i))' 입니다. Pgm']);

데이터 (:,I) = 모양 (im, m*n,1);

끝;

데이터 데이터 저장

Im 지우기

% 트레이닝 이미지 공간 만들기

Fprintf ('트레이닝 이미지 공간 만들기 \n')

Dim = 길이 (trainlist);

ImSpace = zeros (m*n, dim) :

I = 1: dim 의 경우

Index = strmatch (trainList(i), listall);

ImSpace (:,i) = DATA (:,index);

끝;

ImSpace imSpace 저장

데이터 지우기

% 트레이닝 이미지로부터 평균 얼굴을 계산합니다

Fprintf ('0 평균 \n')

Psi = mean (double (im space'))';

Psi psi 저장

% 0 평균

Zeromeanspace = zeros (size (imspace));

I = 1: dim 의 경우

ZeroMeanSpace (:,i) = double(imSpace (:,I))-psi;

끝;

ZeroMeanSpace zeroMeanSpace 를 저장합니다

ImSpace 지우기

% PCA

Fprintf('PCA\n')

L = zeromeanspace' * zeromeanspace; % 터키-펜틀랜드 트릭 (부품 1)

[eigVecs, eigvals] = EIG (l);

대각선 = diag (eigvals);

[대각선, 색인] = sort (대각선);

Index = flipud (인덱스);

Pcaeigvals = zeros (크기 (eigvals));

I = 1: size 의 경우 (eigvals,1)

PcaEigVals(i, i) = eigVals(index(i), index (I));

PcaEigVecs (:,i) = eigVecs (:,index (I));

끝;

Pcaeigvals = diag (pcaeigvals);

Pcaeigvals = pcaeigvals/(dim-1);

Pcaeigvals = pcaeigvals (1:subdim); % 가장 큰 하위 항목만 유지

Pcaeigvecs = zeromeanspace * pcaeigvecs; % 터키-펜틀랜드 사기 (2 부)

PcaEigVals pcaEigVals 를 저장합니다

단위 길이 표준화 퍼센트

Fprintf ('정규화 \n')

I = 1: dim 의 경우

PcaEigVecs (:,i) = pcaEigVecs (:,i)/norm(pcaEigVecs (:,I));

끝;

% 차원 감소.

Fprintf ('저차원 하위 공간 만들기 \n')

W = pcaEigVecs (:,1:subdim);

W w 저장

W 지우기

% 모든 이미지에서 평균 얼굴을 뺍니다

데이터 로드

부하 psi

Zeromeandata = zeros (size (data));

I = 1: size(DATA, 2) 의 경우

ZeroMeanDATA (:,i) = double(DATA (:,I))-psi;

끝;

Psi 지우기

데이터 지우기

% 모든 그림을 새로운 저차원 하위 공간으로 투영 (w)

Fprintf ('모든 이미지를 새로운 저차원 하위 공간에 투영 \n')

하중 w;

PcaProj = w' * zeroMeanDATA

W 지우기

ZeroMeanDATA 를 지웁니다

PcaProj pcaProj 저장