admin 管理员组

文章数量: 1086019


2024年4月16日发(作者:成视频在线转换)

1

.利用

OpenCV

进行人脸检测

人脸检测程序主要完成

3

部分功能,即加载分类器、加载待检测图象以及检测并标示。本程 序使用

OpenCV

中提供的

"haarcascade_frontalface_”

文件存储的目标检测分类,用

cvLoa d

函数载入

后,进行强制类型转换。

OpenCV

中提供的用于检测图像中目标的函数是

cvHaarDete ctObjects

,该函

数使用指针对某目标物体(如人脸)训练的级联分类器在图象中找到包含目标物 体的矩形区域,并将这些

区域作为一序列的矩形框返回。分类器在使用后需要被显式释放,所用的 函数为

cvReleaseHaarClassifierCascade

。这些函数原型请参看有关

OpenCV

手册。

2

.程序实现

1

)新建一个

VisualC++MFC

项目,取名为

“FaceDetection"

,选择应用程序类型为

单文档

。 将菜

单中多余的项去掉,并添加一项

人脸检测

,其

ID

"ID_FaceDetected”

,并生成该菜单项的 消息映射

函数。

2

)在

“FaceDetectionView.h”

头文件中添加以下灰底色部分程序代码:

〃南京森林公安高等专科学校江林升

//FaceDetectionView.h:CFaceDetectionView 类的接□

#pragmaonce

#include"cv.h"

#include"highgui.h"

classCFaceDetectionView:publicCView

<

protected:〃仅从序列口化创建

CFaceDetectionView();

DECLARE_DYNCREATE(CFaceDetectionView)

精心整理

public:

CFaceDetectionDoc*GetDocument()const;

CvHaarClassifierCascade*cascade;〃特征器分类

CvMemStorage*storage;

voiddetect_and_draw(IplImage*img);

IplImage*src; 〃载入的图像

3)

在,小

2

0

0

0

。宜

09100.

。口文件中添加以下灰底色部分程序代码:

//:CFaceDetectionView 类的实现

#include"stdafx.h"

#include"FaceDetection.h"

#include"FaceDetectionDoc.h"

#include"FaceDetectionView.h

#include

#ifdef_DEBUG

#definenewDEBUG_NEW

#endif

//CFaceDetectionView

IMPLEMENT_DYNCREATE(CFaceDetectionView,CView)

BEGIN_MESSAGE_MAP(CFaceDetectionView,CView)

ON_COMMAND(ID_FaceDetected,&CFaceDetectionView::OnFacedetected)

END_MESSAGE_MAP()

//CFaceDetectionView 构造/析构


本文标签: 检测 目标 分类器 人脸 图象