首页 > 代码库 > (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支持的图像文件