首页 > 代码库 > (ZT) OpenCV下MFC单文档显示图像
(ZT) OpenCV下MFC单文档显示图像
1、vs2010中新建SDI,最后view类选择ScorllView以形成带滚动条的视图窗口
2、添加OpenCV的链接库
3、添加相应头文件"cv.h" "highgui.h"到doc.h和view.h(要添加在.h文件中,不要添加在.cpp中,否则容易出错)
4、doc类中添加变量cv::CImage m_image;如果用IplImage读取文件的话,要想定义IplImage* pimg;图像读入pimg后转存入m_img;
5、doc中重写函数OnOpenDocument();并在//TODO后添加
m_img.Load(lpszPathName,1);//CImage类直接读取图像
或pimg=cvLoadImage(lpszPathName,1);
m_img.CopyOf(pimg,IMAGE_CHANNELS);//用IplImage读取图像转存入CImage类,便于显示
之所以不在view类中直接将IplImage类转存成CImage类,是因为在vs2008下这样操作总是出现错误,此处有待改进
6、在view类中改写OnDraw(CDC* pDC)函数,在//TODO后添加以下代码
cv::CImage &img=pDoc->m_img;
HDC hDC=pDC->GetSafeHdc();
CRect rect(0,0,img.Width(),img.Height());
img.DrawToHDC(hDC,&rect); //注意&,否则图像会被拉伸
CSize sizeTotal;
sizeTotal.cx=img.Width();
sizeTotal.cy=img.Height();
SetScrollSizes(MM_TEXT,sizeTotal);
7、生成调试运行,就可打开OpenCV支持的图像文件