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