資源簡介
OpenCV的PCA人臉識別

代碼片段和文件信息
//調試時,遇到cout、new這類特殊字符,按F10而不要用F11
#include???????????//char?*itoa()
#include??
#include?
#include?
#include?“opencv\cv.h“
#include?“opencv\highgui.h“
using?namespace?std;
#define?stdImgwidth?90
#define?stdImgheight?120
int?pFaceRectSeq_numtest=0;?//訓練樣本數量
int?pFaceRectSeq_numtrain=0;//測試樣本數量
//標簽文字設置
double?hScale=0.5;
double?vScale=0.5;
int?lineWidth=1;
CvFont?font;
void?displayDetections(IplImage?*?pInpImgCvSeq?*?pFaceRectSeqchar?*?FileNameint?n);
void?ReconPca();//Pca算法識別
void?loadImg_row(int?pFaceRectSeq_numint?n);//多個樣本圖像以行的形式存儲到一個訓練矩陣中,一個測試圖像以行的形式存儲到一個訓練矩陣中
CvMat*?TrainImgs_row=0;
CvMat*?TestImg_row=0;
int?main(int?argcchar?**?argv)
{
IplImage?*?pInpImg?=?0;
IplImage?*?pInpImg2?=?0;
CvHaarClassifierCascade?*?pCascade?=?0;
CvMemStorage?*?pStorage?=?0;
CvSeq?*?pFaceRectSeq;
pStorage?=?cvCreateMemStorage(0);
pCascade?=?(CvHaarClassifierCascade?*?)cvLoad((“haarcascade_frontalface_default.xml“)000);
////picture的處理
pInpImg?=?cvLoadImage(“picture.jpg“CV_LOAD_IMAGE_COLOR);
if(!pInpImg||!pStorage||!pCascade)
{
cout<<“Initialization?failed:“<
return?0;
}
pFaceRectSeq?=?cvHaarDetectobjects(pInpImgpCascadepStorage1.13CV_HAAR_DO_CANNY_PRUNINGcvSize(2020));
displayDetections(pInpImgpFaceRectSeq“picture.jpg“0);??????
pFaceRectSeq_numtrain=pFaceRectSeq->total;
//photo的處理
pInpImg2?=?cvLoadImage(“photo.jpg“CV_LOAD_IMAGE_COLOR);
if(!pInpImg2)
{
cout<<“Initialization?failed:“<
return?0;
}
pFaceRectSeq?=?cvHaarDetectobjects(pInpImg2pCascadepStorage1.13CV_HAAR_DO_CANNY_PRUNINGcvSize(2020));
displayDetections(pInpImg2pFaceRectSeq“photo.jpg“1);?
pFaceRectSeq_numtest=pFaceRectSeq->total;
ReconPca();
if(pCascade)?cvReleaseHaarClassifierCascade(&pCascade);
if(pStorage)?cvReleaseMemStorage(&pStorage);
return?0;
}
void?displayDetections(IplImage?*?pInpImgCvSeq?*?pFaceRectSeqchar?*?FileNameint?n)//int?n:區分picture和photo
{
char?*?DISPLAY_WINDOW?=new?char[30];??/*解決連接字符串時,FileName空間不夠的問題*/
strcpy(DISPLAY_WINDOW“Haar?Window“);
int?i;
IplImage?*?dst?=?cvCreateImage(cvSize(stdImgwidthstdImgheight)pInpImg->depthpInpImg->nChannels);//pInpImg->depth應該歸一化???
IplImage*?dst2?=?cvCreateImage(cvGetSize(dst)?IPL_DEPTH_8U?1);//創建樣本圖像。注意:IPL_DEPTH_8U
cout<<“pFaceRectSeq->total:?“<total<
for(i=0;i<(pFaceRectSeq?pFaceRectSeq->total:0);i++)
{
CvRect?*?r?=?(CvRect*)cvGetSeqElem(pFaceRectSeqi);
CvPoint?pt1?=?{r->xr->y};
CvPoint?pt2?=?{r->x+r->widthr->y+r->height};
//CvPoint?pt3?=?{r->x+r->width/4r->y+r->height/4};
char?*?names=new?char[18];
itoa(i+1+30*nnames?10);?
cvRectangle(pInpImgpt1pt2CV_RGB(02550)340);
CvFont?font;
cvInitFont(&fontCV_FONT_HERSHEY_COMPLEX?hScalevScale0lineWidth);
????????cvPutText?(pInpImgnamespt1?&font?cvScalar(255255255));
cvSetImageR
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????314334??2013-08-19?15:00??人臉識別\0.bmp
?????文件??????76086??2013-08-19?15:00??人臉識別\1.bmp
?????文件???????4537??2013-08-19?15:00??人臉識別\1.jpg
?????文件??????32694??2013-08-19?15:00??人臉識別\2.bmp
?????文件???????5159??2013-08-19?15:00??人臉識別\2.jpg
?????文件??????32694??2013-08-19?15:00??人臉識別\3.bmp
?????文件???????4830??2013-08-19?15:00??人臉識別\3.jpg
?????文件??????32694??2013-08-19?15:00??人臉識別\31.bmp
?????文件???????4920??2013-08-19?15:00??人臉識別\31.jpg
?????文件??????32694??2013-08-19?15:00??人臉識別\4.bmp
?????文件???????4745??2013-08-19?15:00??人臉識別\4.jpg
?????文件??????32694??2013-08-19?15:00??人臉識別\5.bmp
?????文件???????5532??2013-08-19?15:00??人臉識別\5.jpg
?????文件???????9589??2012-05-27?22:08??人臉識別\code.txt
?????文件????????266??2013-08-19?14:59??人臉識別\Debug\BscMake.command.1.tlog
?????文件????????446??2013-08-19?14:59??人臉識別\Debug\bscmake.read.1.tlog
?????文件????????284??2013-08-19?14:59??人臉識別\Debug\bscmake.write.1.tlog
?????文件????????770??2013-08-19?14:58??人臉識別\Debug\cl.command.1.tlog
?????文件??????25012??2013-08-19?14:58??人臉識別\Debug\CL.read.1.tlog
?????文件????????540??2013-08-19?14:58??人臉識別\Debug\CL.write.1.tlog
?????文件????5917696??2013-08-19?14:59??人臉識別\Debug\facedection.bsc
?????文件?????566272??2013-08-19?14:59??人臉識別\Debug\facedection.exe
?????文件????????406??2013-08-19?14:59??人臉識別\Debug\facedection.exe.em
?????文件????????472??2013-08-19?14:59??人臉識別\Debug\facedection.exe.em
?????文件????????381??2013-08-19?14:59??人臉識別\Debug\facedection.exe.intermediate.manifest
?????文件????1476180??2013-08-19?14:59??人臉識別\Debug\facedection.ilk
?????文件?????????78??2013-08-19?14:59??人臉識別\Debug\facedection.lastbuildstate
?????文件???????3832??2013-08-19?14:59??人臉識別\Debug\facedection.log
?????文件?????366208??2013-08-19?14:58??人臉識別\Debug\facedection.obj
?????文件????3132416??2013-08-19?14:59??人臉識別\Debug\facedection.pdb
............此處省略42個文件信息
- 上一篇:差值法變化檢測
- 下一篇:lamescan3漢化版
評論
共有 條評論