人臉識別程序源代碼_第1頁
人臉識別程序源代碼_第2頁
人臉識別程序源代碼_第3頁
人臉識別程序源代碼_第4頁
人臉識別程序源代碼_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

人臉識別程序源代碼人臉識別程序源代碼人臉識別程序源代碼xxx公司人臉識別程序源代碼文件編號:文件日期:修訂次數(shù):第1.0次更改批準(zhǔn)審核制定方案設(shè)計(jì),管理制度1.利用OpenCV進(jìn)行人臉檢測人臉檢測程序主要完成3部分功能,即加載分類器、加載待檢測圖象以及檢測并標(biāo)示。本程序使用OpenCV中提供的“”文件存儲的目標(biāo)檢測分類,用cvLoad函數(shù)載入后,進(jìn)行強(qiáng)制類型轉(zhuǎn)換。OpenCV中提供的用于檢測圖像中目標(biāo)的函數(shù)是cvHaarDetectObjects,該函數(shù)使用指針對某目標(biāo)物體(如人臉)訓(xùn)練的級聯(lián)分類器在圖象中找到包含目標(biāo)物體的矩形區(qū)域,并將這些區(qū)域作為一序列的矩形框返回。分類器在使用后需要被顯式釋放,所用的函數(shù)為cvReleaseHaarClassifierCascade。這些函數(shù)原型請參看有關(guān)OpenCV手冊。2.程序?qū)崿F(xiàn)1)新建一個VisualC++MFC項(xiàng)目,取名為“FaceDetection”,選擇應(yīng)用程序類型為“單文檔”。將菜單中多余的項(xiàng)去掉,并添加一項(xiàng)“人臉檢測”,其ID為“ID_FaceDetected”,并生成該菜單項(xiàng)的消息映射函數(shù)。2)在“”頭文件中添加以下灰底色部分程序代碼:pg)|*.jpg|(*.bmp)|*.bmp|",NULL);

//從文件對話窗口中打開圖像

if()!=IDOK)

return;

//獲得文件名

fileName=();

//必要的類型轉(zhuǎn)換

std::stringtempName=(LPCSTR)CStringA(fileName);

constchar*tmp=();

//打開文件,若失敗則返回

if((src=cvLoadImage(tmp,CV_LOAD_IMAGE_ANYCOLOR))==0)

return;

//加載(分類器層疊)訓(xùn)練庫

cascade=(CvHaarClassifierCascade*)cvLoad(cascade_name,0,0,0);

//加載不成功則顯示錯誤訊息,并退出

if(cascade)

{

storage=cvCreateMemStorage(0);

cvNamedWindow("人臉檢測",CV_WINDOW_AUTOSIZE);//創(chuàng)建窗口

//如果圖片存在則分析并顯示結(jié)果,否則退出程序

if(src)detect_and_draw(src);//調(diào)用人臉檢與標(biāo)示事件

cvReleaseImage(&src);

cvReleaseMemStorage(&storage);

}

else

{

&,nbsp;AfxMessageBox(L"無法加載分類器,請確認(rèn)后重試!");

}

cvReleaseHaarClassifierCascade(&cascade);

}

voidCFaceDetectionView::detect_and_draw(IplImage*img)//人臉檢與標(biāo)示事件

{

staticCvScalarcolor[]={0,0,255};//用于設(shè)置標(biāo)示圖像中人臉的顏色

doublescale=;

IplImage*gray=cvCreateImage(cvSize(img->width,img->height),8,1);

IplImage*small_img=cvCreateImage(cvSize(cvRound(img->width/scale),cvRound(img->height/scale)),8,1);

inti;

cvCvtColor(img,gray,CV_BGR2GRAY);

cvResize(gray,small_img,CV_INTER_LINEAR);

cvEqualizeHist(small_img,small_img);

cvClearMemStorage(storage);

if(cascade)

{//檢測人臉

CvSeq*faces=cvHaarDetectObjects(small_img,cascade,storage,,2,0,cvSize(30,30));

for(i=0;i<(facesfaces->total:0);i++)

{

CvRect*r=(CvRect*)cvGetSeqElem(faces,i);

CvPointcenter;

intradius;

=cvRound((r->x+r->width**scale);

=cvRound((r->y+r->height**scale);

radius=cvRound((r->width+r->height)**scale);

cvCircle(img,center,radius,color[0],3,8,0);

}

}

cvShowImage("人臉檢測",img);

cvReleaseImage(&gray);

cvReleaseImage(&small_img);

}需要注意的是,本程序運(yùn)行時應(yīng)將分類器文件置于程序目錄下,如果運(yùn)行的是生成的EXE文件,則應(yīng)將分類器文件與該EXE文件放在同一個目錄下。三、程序運(yùn)行結(jié)果運(yùn)行該程序,選擇人臉

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論