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 }
原文地址:https://www.cnblogs.com/lpxblog/p/4703389.html