VS2010+MFC+OpenCv处理图像的配置

来源:互联网 发布:搜游网络 融资 编辑:程序博客网 时间:2024/05/21 10:33

本文是基于工程文件中已经添加了OpenCv库和路径


1、在工程中添加CvvImage.h和CvvImage.cpp(从网上下载);

2、在Doc.h文件中 添加头文件#include <highgui.h>和#include "CvvImage.h" 以及成员变量(以m_Image为例);

       在Doc.cpp中,利用MFC向导 添加两个virual function:

          @1     OnOpenDocument()  : 在该函数内添加     

 m_Image.Load(lpszPathName);

                                                              若参数不匹配,修改字符集,使用Multi-byte

          @2     OnSaveDocument()   : 在该函数内添加

CFileDialog dlg ( TRUE ) ;if ( dlg.DoModal() == IDOK ){   m_image.Save(dlg.GetPathName());} //return TRUE;注释掉 //return CDocument::OnSaveDocument(lpszPathName);

 3、在View.cpp中 添加 CvvImage.h
      在OnDraw中添加   
 
CvvImage &img=pDoc->m_image;CRect r;GetClientRect (&r);img.DrawToHDC(pDC->GetSafeHdc() ,r);

 至此,可以在MFC中通过OpenCv打开和保存图像了


下面是一个例子:添加一个Canny边缘检测的方法
1、在资源菜单上添加菜单按键,右键添加句柄 Event Handler (Class List选择Doc)
2、在第一部中自动生成的处理处理函数内,添加

IplImage* img;img=m_Image.GetImage();if(img->nChannels==3){   IplImage* dst = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);   cvCvtColor(img,dst,CV_BGR2GRAY);   *img=*dst;}cvCanny(img,img,50,150,3);UpdateAllViews(NULL);

这样就能使用菜单对图像进行边缘检测了。

 












                                                            

原创粉丝点击