你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 图形图象处理与游戏编程
利用OpenCV实现人脸检测(三)
 

2 程序开发

人脸检测是一个非常先进的问题,它是人脸研究的一个主要方向,其任务是对于一幅给定的图像,采用一定的策略对其进行搜索,以确定其中是否含有人脸、含有多少个人脸,以及所含人脸的位置、大小和姿态。人脸检测的算法很多,Adaboost算法是其中的一种。Adaboost算法虽然十分复杂,但应用OpenCV提供的函数和分类器进行人脸检测将是十分容易。

21 利用OpenCV进行人脸检测

人脸检测程序主要完成3部分功能,即加载分类器、加载待检测图像以及检测并标示。本程序使用OpenCV中提供的“haarcascade_frontalface_alt.xml”文件存储的目标检测分类,用cvLoad函数载入后,进行强制类型转换。OpenCV中提供的用于检测图像中目标的函数是cvHaarDetectObjects,该函数使用指针对某目标物体(如人脸)训练的级联分类器在图像中找到包含目标物体的矩形区域,并将这些区域作为一序列的矩形框返回。分类器在使用后需要被显式释放,所用的函数为cvReleaseHaarClassifierCascade,这些函数原型请参看有关OpenCV手册。

22程序实现

1)新建一个Visual C++ MFC项目,取名为“FaceDetection”,选择应用程序类型为“单文档”。将菜单中多余的项去掉,并添加一项“人脸检测”,其ID为“ID_FaceDetected”,并生成该菜单项的消息映射函数。

2)在“FaceDetectionView.h”头文件中添加以下灰底色部分程序代码:

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

// FaceDetectionView.h : CFaceDetectionView 类的接口

#pragma once

#include "cv.h"

#include "highgui.h"

 

class CFaceDetectionView : public CView

{

protected: // 仅从序列化创建

    CFaceDetectionView();

    DECLARE_DYNCREATE(CFaceDetectionView)

// 属性

public:

    CFaceDetectionDoc* GetDocument() const;

    CvHaarClassifierCascade* cascade;//特征器分类

    CvMemStorage* storage;

    void detect_and_draw( IplImage* img );

    IplImage* src;  //载入的图像

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089