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

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

// FaceDetectionView.cpp : CFaceDetectionView 类的实现

#include "stdafx.h"

#include "FaceDetection.h"

#include "FaceDetectionDoc.h"

#include "FaceDetectionView.h"

#include <string>

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

// CFaceDetectionView

IMPLEMENT_DYNCREATE(CFaceDetectionView, CView)

BEGIN_MESSAGE_MAP(CFaceDetectionView, CView)

    ON_COMMAND(ID_FaceDetected, &CFaceDetectionView::OnFacedetected)

END_MESSAGE_MAP()

// CFaceDetectionView 构造/析构

const char* cascade_name ="haarcascade_frontalface_alt.xml";//分类器的名称

// CFaceDetectionView 消息处理程序

void CFaceDetectionView::OnFacedetected()  //人脸检测菜单响应事件

{

    // TODO: 在此添加命令处理程序代码

    CString fileName;

    //打开文件对话窗口

    CFileDialog OpenDlg( TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_NOCHANGEDIR, L"图像文件格式JPG file format (*.jpg)|*.jpg|(*.bmp) |*.bmp|", NULL);

    //从文件对话窗口中打开图像

    if(OpenDlg.DoModal()!=IDOK)

    return;

    //获得文件名

    fileName = OpenDlg.GetPathName();

    //必要的类型转换

    std::string tempName = (LPCSTR)CStringA(fileName);

    const char* tmp = tempName.c_str();

    //打开文件,若失败则返回

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

    return;

    //加载(分类器层叠)训练库

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

    //加载不成功则显示错误讯息,并退出

    if(cascade)

    {

        storage = cvCreateMemStorage(0);

        cvNamedWindow( "人脸检测", CV_WINDOW_AUTOSIZE ); //创建窗口

        //如果图片存在则分析并显示结果,否则退出程序

        if(src) detect_and_draw(src);  //调用人脸检与标示事件

        cvReleaseImage(&src);

        cvReleaseMemStorage( &storage );

    }

    else

    {

  推荐精品文章

·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