




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上1利用OpenCV進(jìn)行人臉檢測人臉檢測程序主要完成3部分功能,即加載分類器、加載待檢測圖象以及檢測并標(biāo)示。本程序使用OpenCV中提供的“haarcascade_frontalface_alt.xml”文件存儲(chǔ)的目標(biāo)檢測分類,用cvLoad函數(shù)載入后,進(jìn)行強(qiáng)制類型轉(zhuǎn)換。OpenCV中提供的用于檢測圖像中目標(biāo)的函數(shù)是cvHaarDetectObjects,該函數(shù)使用指針對(duì)某目標(biāo)物體(如人臉)訓(xùn)練的級(jí)聯(lián)分類器在圖象中找到包含目標(biāo)物體的矩形區(qū)域,并將這些區(qū)域作為一序列的矩形框返回。分類器在使用后需要被顯式釋放,所用的函數(shù)為cvReleaseHaarClassifierCas
2、cade。這些函數(shù)原型請(qǐng)參看有關(guān)OpenCV手冊(cè)。2程序?qū)崿F(xiàn)1)新建一個(gè)Visual C+ MFC項(xiàng)目,取名為“FaceDetection”,選擇應(yīng)用程序類型為“單文檔”。將菜單中多余的項(xiàng)去掉,并添加一項(xiàng)“人臉檢測”,其ID為“ID_FaceDetected”,并生成該菜單項(xiàng)的消息映射函數(shù)。2)在“FaceDetectionView.h”頭文件中添加以下灰底色部分程序代碼:/南京森林公安高等??茖W(xué)校 江林升/ FaceDetectionView.h : CFaceDetectionView 類的接口#pragma once#include "cv.h"#include &q
3、uot;highgui.h"class CFaceDetectionView : public CViewprotected: / 僅從序列化創(chuàng)建 CFaceDetectionView(); DECLARE_DYNCREATE(CFaceDetectionView)/ 屬性public: CFaceDetectionDoc* GetDocument() const; CvHaarClassifierCascade* cascade;/特征器分類 CvMemStorage* storage; void detect_and_draw( IplImage* img ); IplImage
4、* src; /載入的圖像3)在“FaceDetectionView.cpp”文件中添加以下灰底色部分程序代碼:/ FaceDetectionView.cpp : CFaceDetectionView 類的實(shí)現(xiàn)#include "stdafx.h"#include "FaceDetection.h"#include "FaceDetectionDoc.h"#include "FaceDetectionView.h"#include <string>#ifdef _DEBUG#define new DEB
5、UG_NEW#endif/ CFaceDetectionViewIMPLEMENT_DYNCREATE(CFaceDetectionView, CView)BEGIN_MESSAGE_MAP(CFaceDetectionView, CView) ON_COMMAND(ID_FaceDetected, &CFaceDetectionView:OnFacedetected)END_MESSAGE_MAP()/ CFaceDetectionView 構(gòu)造/析構(gòu)const char* cascade_name ="haarcascade_frontalface_alt.xml&quo
6、t;/分類器的名稱/ CFaceDetectionView 消息處理程序void CFaceDetectionView:OnFacedetected() /人臉檢測菜單響應(yīng)事件 / TODO: 在此添加命令處理程序代碼 CString fileName; /打開文件對(duì)話窗口 CFileDialog OpenDlg( TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_NOCHANGEDIR, L"圖像文件格式JPG file format (*.jpg)|*.jpg|(*.bmp) |*.bmp|",
7、 NULL); /從文件對(duì)話窗口中打開圖像 if(OpenDlg.DoModal()!=IDOK) return; /獲得文件名 fileName = OpenDlg.GetPathName(); /必要的類型轉(zhuǎn)換 std:string tempName = (LPCSTR)CStringA(fileName); const char* tmp = tempName.c_str(); /打開文件,若失敗則返回 if( (src = cvLoadImage(tmp, CV_LOAD_IMAGE_ANYCOLOR) = 0 ) return; /加載(分類器層疊)訓(xùn)練庫 cascade = (Cv
8、HaarClassifierCascade*)cvLoad( cascade_name, 0, 0, 0 ); /加載不成功則顯示錯(cuò)誤訊息,并退出 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( &sto
9、rage ); else &, nbsp; AfxMessageBox(L"無法加載分類器,請(qǐng)確認(rèn)后重試!"); cvReleaseHaarClassifierCascade( &cascade );void CFaceDetectionView:detect_and_draw(IplImage *img) /人臉檢與標(biāo)示事件 static CvScalar color = 0,0,255;/用于設(shè)置標(biāo)示圖像中人臉的顏色 double scale = 1.3; IplImage* gray = cvCreateImage( cvSize(img->wi
10、dth,img->height), 8, 1 ); IplImage* small_img = cvCreateImage( cvSize( cvRound (img->width/scale),cvRound (img->height/scale),8,1 ); int i; cvCvtColor( img, gray, CV_BGR2GRAY ); cvResize( gray, small_img, CV_INTER_LINEAR ); cvEqualizeHist( small_img, small_img ); cvClearMemStorage( storage
11、); if( cascade ) /檢測人臉 CvSeq* faces = cvHaarDetectObjects( small_img, cascade, storage, 1.1, 2, 0, cvSize(30, 30) ); for( i = 0; i < (faces ? faces->total : 0); i+ ) CvRect* r = (CvRect*)cvGetSeqElem( faces, i ); CvPoint center; int radius; center.x = cvRound(r->x + r->width*0.5)*scale);
12、 center.y = cvRound(r->y + r->height*0.5)*scale); radius = cvRound(r->width + r->height)*0.25*scale); cvCircle( img, center, radius, color0, 3, 8, 0 ); cvShowImage( "人臉檢測", img ); cvReleaseImage( &gray ); cvReleaseImage( &small_img );需要注意的是,本程序運(yùn)行時(shí)應(yīng)將分類器文件置于程序目錄下,如果運(yùn)行的是生成的EXE文件,則
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國精密人造金剛石切割片市場調(diào)查研究報(bào)告
- 2025年中國窗用開關(guān)市場現(xiàn)狀分析及前景預(yù)測報(bào)告
- 2025年中國碳化硅板市場調(diào)查研究報(bào)告
- 2025年中國白剛玉塊市場調(diào)查研究報(bào)告
- 2025年中國電熨斗專用耐高溫瓷膜涂料市場現(xiàn)狀分析及前景預(yù)測報(bào)告
- 2025年中國球磨機(jī)鋼件市場調(diào)查研究報(bào)告
- 2025年中國玄武巖纖維板材市場調(diào)查研究報(bào)告
- 2025年中國焦利氏稱市場調(diào)查研究報(bào)告
- 鍋爐理論考試試題及答案
- 叉車模擬考試試題及答案
- 音樂欣賞活動(dòng)教案課件
- 總公司與分公司的交易合同6篇
- 2024中考模擬題歷史歷史(貴州貴陽卷)(考試版A3)
- 2025公務(wù)員考試題庫及答案
- 2024年宿遷市融媒體中心招聘考試真題
- 《業(yè)績分析報(bào)告實(shí)例》課件
- 2024電氣工程師考試練習(xí)題分享試題及答案
- 統(tǒng)編版(2024)七年級(jí)下冊(cè)道德與法治期中測試卷(含答案)
- 財(cái)務(wù)會(huì)計(jì)考試試題及答案
- 縣某中學(xué)體育場項(xiàng)目可行性研究報(bào)告
- 2025江蘇南京大數(shù)據(jù)集團(tuán)有限公司招聘45人筆試參考題庫附帶答案詳解
評(píng)論
0/150
提交評(píng)論