void CMFCDlg::On_CaptureImage()
{
// TODO: 在此添加控件通知处理程序代码
//m_grabframe = cvQueryFrame(Capture);
m_grabframe = frame;
if (m_grabframe == 0)
{
MessageBox(_T("摄像头已关闭,无法捕捉图像!!!"));
return;
}
CString ImagePath = TEXT("D:\\Documents\\qq\\");
if (!PathIsDirectory(ImagePath))
{
CreateDirectory(ImagePath, 0);//不存在则创建
MessageBox(_T("标定图片文件夹已创建!!!"));
return;
}
char ImagesName[100];
ImgNum = ImgNum + 1;
sprintf_s(ImagesName, "%s%.2d%s", "D:\\Documents\\qq\\", ImgNum, ".jpg");
IplImage * m_snap = cvCreateImage(cvGetSize(m_grabframe), m_grabframe->depth, m_grabframe->nChannels);
cvCopy(m_grabframe, m_snap, NULL);
cvSaveImage(ImagesName, m_snap); //把图像写入指定文件夹的文件中去
//以下代码是完成图像的显示过程
pDC = GetDlgItem(IDC_PIC1_STATIC)->GetDC();//GetDlgItem(IDC_PIC_STATIC)意思为获取显示控件的句柄(句柄就是指针),获取显示控件的DC
GetDlgItem(IDC_PIC1_STATIC)->GetClientRect(&rect);
hDC = pDC->GetSafeHdc();//获取显示控件的句柄
CvvImage m_CvvImage;
m_CvvImage.CopyOf(m_snap, 1); //复制该帧图像
m_CvvImage.DrawToHDC(hDC, &rect); //显示到设备环境的矩形框内
}
一直在pDC = GetDlgItem(IDC_PIC1_STATIC)->GetDC()这句中断,提示cv::Exception
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10768339.html
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10993204.html
你Debug下调试一下:GetDlgItem(IDC_PIC1_STATIC)返回值是什么?是不是返回NULL ?