1、 添加相关的参数
CvCapture*m_Video;//获取摄像头
IplImage* m_frame;//当前摄像头的内容
bool isOpenCa;//是否打开了摄像头
2、 记得在析构函数中销毁生成的对象
if(isOpenCa == TRUE)
cvReleaseCapture(&m_Video);
3、 初始化打开摄像头的操作
GetDlgItem(IDC_MODEL_START)->SetWindowText(_T("关闭"));
m_Video = cvCreateCameraCapture(1);//打开摄像头
if (!m_Video) {
AfxMessageBox("请先打开摄像头");
return;
}
isOpenCa = TRUE;
cvSetCaptureProperty(m_Video,CV_CAP_PROP_FRAME_WIDTH , 1280);
cvSetCaptureProperty(m_Video,CV_CAP_PROP_FRAME_HEIGHT, 1024);
SetTimer(1,100,NULL);//设置定时器
4、 添加定时器
m_frame =cvQueryFrame(m_Video);//m_Frame是IplImage指针类型
if (m_frame == NULL)
cvReleaseCapture(&m_Video);
ShowImage(m_frame, IDC_MODEL_CUT);
CDialogEx::OnTimer(nIDEvent);
5、 showImage()代码
voidModelAcquire::ShowImage( IplImage* img, UINT ID ) // ID 是Picture Control控件的ID号
{
// 获得显示控件的 DC
CDC* pDC = GetDlgItem(ID) ->GetDC();
// 获取 HDC(设备句柄) 来进行绘图操作
HDC hDC = pDC->GetSafeHdc();
CRect rect;
GetDlgItem(ID)->GetClientRect( &rect );
//复制图片
CvvImage cimg;
cimg.CopyOf(img);
// 将图片绘制到显示控件的指定区域内
cimg.DrawToHDC(hDC, &rect);
ReleaseDC(pDC);
}