OpenCV第二课,嵌入MFC
单纯显示图片,只需链接
opencv_core2411d.lib
opencv_highgui2411d.lib
1、首先创建一个MFC的dlg,添加Picture Control控件
1 void CCOpenCvDemoDlg::OnBnClickedBtnDraw() 2 {//窗口绘制图片 3 IplImage *image=NULL; //原始图像 4 if(image) cvReleaseImage(&image); 5 std::string strPath = "F:\\VSProject\\COpenCvDemo\\image\\first.jpg"; 6 image = cvLoadImage(strPath.c_str(),CV_LOAD_IMAGE_COLOR); //显示图片 7 8 CDC *pDC = GetDlgItem(IDC_STATIC_PICTURE)->GetDC(); 9 HDC hDC= pDC->GetSafeHdc(); 10 CRect rect; 11 GetDlgItem(IDC_STATIC_PICTURE)->GetClientRect(&rect); 12 CvvImage cimg; 13 cimg.CopyOf(image); // 复制图片 14 cimg.DrawToHDC(hDC, &rect ); // 将图片绘制到显示控件的指定区域内 15 ReleaseDC( pDC ); 16 }
用的的CvvImage类:CvvImage在高级别的Opencv2.4.11下的配置以及错误解决办法
2、有图有真相:
如果希望在dlg初始化之后直接显示图片:
使用vs类向导重载OnPaint()
1 void CDrawPictureDlg::OnPaint() 2 { 3 CPaintDC dc(this); // device context for painting 4 CDialog::OnPaint(); 5 // 重绘对话框 6 CDialog::UpdateWindow(); // 更新windows窗口,如果无这步调用,图片显示还会出现问题 7 OnBnClickedBtnDrawpic(); 8 ModifyStyle(0, WS_CLIPCHILDREN); 9 }