平台:vs2013+opencv3.1.0
本来以为利用mfc打开摄像头并且显示到窗口上应该是很简单的一件事情,但是没想到却遇到了一点麻烦,首先我是根据这篇博客做的http://blog.youkuaiyun.com/jiyanfeng1/article/details/9169019,感觉代码可行,但是运行以后却发现摄像头是打开了,可是摄像头抓取的内容却没有显示。所以就根据这篇博客选取了另外一种方法。
第一步:首先创建一个基于对话框的mfc应用程序,当然我们要在vs2013中配置好相应的opencv,opencv的下载和配置这里也给出一篇博客http://www.cnblogs.com/zangdalei/p/5339316.html,同时我们需要CvvImage类,可以参考上面第一篇论文吧相应的CvvImage.h,CvvImage.cpp文件添加到工程中,同时在对话框的cpp程序中添加上CvvImage.h
第二步:在对话框中添加一个picture控件和两个打开关闭按钮,可以参考第一篇博客,将相关头文件添加进去
#include "stdafx.h"
#include "VideoMFC.h"
#include "VideoMFCDlg.h"
#include "afxdialogex.h"
#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include
#include
#include "CvvImage.h"
using namespace cv;
using namespace std;
其次把下列变量声明为全局变量,这里主要是需要把VideoCapture cap声明为全局变量,因为我们需要用cap打开关闭摄像头。
CvCapture* capture;
CRect rect;
CDC *pDC;
HDC hDC;
CWnd *pwnd;
VideoCapture cap;
第三步:
看一下打开摄像头按钮的代码: