代码改变世界

MFC中快速应用OpenCV教程

2016-04-10 14:16  GarfieldEr007  阅读(1440)  评论(0编辑  收藏  举报

论坛上看到非常经典的VS2008 + OpenCV 2.0下的配置过程:

(这里用的是opencv2.0)


1. 文件 | 项目 | MFC | MFC应用程序 |(新名称如MFCtest)|next
2. 单文档,取消使用Unicode库选项,选中在静态库中使用MFC | next
3. 取消ActiveX控件选项 | next | 完成
4. 项目 | 属性 | 链接器 | 
输入(活动Debug) | 附加依赖项 | cxcore200d.lib cv200d.lib highgui200d.lib

输入(Release) | 附加依赖项 | cxcore200.lib cv200.lib highgui200.lib

《opencv1.0的话是cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib》

5. 解决方案中 | MFCtestDoc.h 中增加 | include “highgui.h” | 
public 中增加 CImage m_image
6. 类视图 | 右击 CMFCtestDoc | 增加 | 增加函数 | 增加函数名OnOpenDocument | 参数类型 LPCTSTR,参数lpszPathName | 添加 | 选中虚函数。|
(注意:这里我直接用下来菜单中的bool(小写),编译会出错的,改为BOOL(大写)后编译通过,看了下自带的OnNewDocument的返回值也是BOOL(大写))
7. 在OnOpenDocument中增加代码:

[html] view plain copy
 
  1. if(!CDocument::OnOpenDocument(lpszPathName))  return false;  
  2. m_image.Load(lpszPathName);  
  3. return true;  

8. 同6,7步增加OnSaveDocument代码:

[html] view plain copy
 
  1. m_image.Save(lpszPathName);  
  2. return true;  

9. 在CMFCtestView中的OnDraw中在原有代码基础上修改为:
(注意首先把OnDraw的参数改为CDC* pDC)

[html] view plain copy
 
  1. CMFC_testDoc* pDoc = GetDocument();  
  2. ASSERT_VALID(pDoc);  
  3. if (!pDoc)  
  4.    return;  
  5. CImage & img = pDoc ->m_image;  
  6. CRect r;  
  7. GetClientRect (&r);  
  8. img.DrawToHDC(pDC->GetSafeHdc() ,r);  

10.运行正常

 

from: http://blog.csdn.net/abcjennifer/article/details/7215765