Chức năng tìm khuôn mặt giống với khuôn mặt cho trước

Một phần của tài liệu Nhận dạng ảnh sử dụng thuật toán PCA (Trang 25 - 26)

II. Các biến , hàm trong sử dụng trong chương trình

2.1. Chức năng tìm khuôn mặt giống với khuôn mặt cho trước

Sử dụng các biến toàn cục :

- int nTrainFaces : số ảnh được đưa ra để huấn luyện

- int nEigens : số các giá trị riêng

- IplImage **faceImgArr : mảng chứa các ảnh

- IplImage *pAvgTrainImg : ảnh trung bình

- IplImage **eigenVecArr : vector riêng

- CvMat *personNumTruthMat : mảng chứa các chỉ số ảnh

- Cv *projectedTrainFaceMat : lưu trữ các khuôn mặt huấn luyện sau khi chiếu lên không gian con PCA

Sử dụng các hàm :

- learn() : thực hiện công việc

+ load dữ liệu (chỉ số và đường dẫn ảnh để huấn luyện trong file train.txt)

+ thực hiện thuật toán PCA để tìm không gian con + chiếu dữ liệu huấn luyện lên không gian con

+ lưu lại tất cả các thông tin (giá trị riêng, vector riêng, ảnh trung bình, chỉ số ảnh , khuôn mặt được chiếu)

- recognize() : thực hiện công việc :

+ load dữ liệu (chỉ số và đường dẫn ảnh để kiểm tra trong file “test.txt”) .

+ chiếu ảnh cần kiểm tra lên không gian con PCA (dùng hàm cvEigenDecomposite(...))

- doPCA() : khởi tạo các biến số , ma trận ...để làm đầu vào và nhận kết quả đầu ra khi gọi hàm xử lý theo thuật toán PCA (cvCalcEigenObjects(...))

- storeTrainingData() : lưu tất cả dữ liệu vào file “facedata.xml”

- loadTrainingData( Cv **pTrainPersonNumMat) :

load dữ liệu trong file “facedata.xml”

- findNearestNeighbor ( float *projectedTestFace ) : so sánh từng ảnh test với từng ảnh train , tìm và trả lại chỉ số của ảnh train có khoảng cách nhỏ nhất với nó .

- loadFaceImgArray(char *filename) : load ảnh cũng như chỉ sổ của nó lưu trữ vào mảng .

Một phần của tài liệu Nhận dạng ảnh sử dụng thuật toán PCA (Trang 25 - 26)

Tải bản đầy đủ (DOCX)

(34 trang)
w