您的位置:首页 > 运维架构

OpenCV第二课,嵌入MFC

2015-08-04 22:55 531 查看
单纯显示图片,只需链接

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(0, WS_CLIPCHILDREN);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: