OpenCV图像或视频显示在VC对话框中的方法

转自:我思故我在

在MFC界面上添加一个picture控件,假设其ID为IDC_STATIC_PIC,类型设置为"增强图元文件"
首先包含OPENCV里的头文件:
#include <cv.h>
#include <stdio.h>
#include <highgui.h>
在相应事件按钮里添加如下代码:
IplImage* pFrame = NULL;
if(pFrame)
cvReleaseImage(&pFrame);
CvCapture* pCapture = NULL;
if(pCapture = cvCaptureFromFile("3.avi"))//加载视频文件,这里文件名为"3.avi"
while(pFrame = cvQueryFrame( pCapture ))
DrawPicToHDC(pFrame, IDC_STATIC_PIC);
其中DrawPicToHDC的函数定义如下:
void CTestDlg::DrawPicToHDC(IplImage *img, UINT ID)
{
CDC *pDC = GetDlgItem(ID)->GetDC();
HDC hDC= pDC->GetSafeHdc();
CRect rect;
GetDlgItem(ID)->GetClientRect(&rect);
CvvImage cimg;

cimg.CopyOf(img);
cimg.DrawToHDC(hDC,&rect);
ReleaseDC(pDC);

}

单击按钮就可以在picture里逐帧显示视频"3.avi"里的内容了

posted @ 2011-06-13 15:42  caotangwa  阅读(1690)  评论(0编辑  收藏  举报