MFC中应用OpenCV教程


在MFC框架快速应用OpenCV 版本1,作者:ollydg23 日期:11/29/08 Contents 1 创建SDI工程 1 2 加入OpenCV库支持 2 3 在Doc类中添加变量 3 4 添加虚函数 3 5 View类中添加显示图片代码 4 6 感谢和后记 5 1 创建SDI工程 我使用的是Visual C++ 6.0,因此,本教程描述的是在VC6上面演示操作,如果 您使用别的版本的VC,我想应该也差不多。 首先,按照VC的向导,产生一个默认的MFC的工程,注意,选择SDI单文档支 持的,同时最好选择“use MFC As a static library”1。 1以避免一些MFC中的memory leak的问题 1 Figure 1: VC 向导,选择MFC APPWizard Figure 2: VC向导,选择single document 就这样子一路下去之后,基本的MFC框架就创建完成了。 2 加入OpenCV库支持 现在加入openCV必须的头文件和库文件。如下图所示,我们添加库文件: cxcore.lib cv.lib highgui.lib 2 Figure 3: 添加lib文件 3 在Doc类中添加变量 Figure 4: 加入变量m image 并且在开头加上 HighGui.h 的头文件包含, 同时添加一个变量 “CImage m image;”。 4 添加虚函数 添加两个函数,分别用来打开图片文件和保存图片文件,添加过程见下图的右 键菜单。 3 Figure 5: 右键添加虚函数 如上图所示,添加虚函数,分别添加: Algorithm 1 打开文件 BOOL CSDI OpenCVDoc::OnOpenDocument(LPCTSTR lpszPathName) { if (!CDocument::OnOpenDocument(lpszPathName)) return FALSE; // TODO: Add your specialized creation code here m image.Load(lpszPathName); return TRUE; } Algorithm 2 保存文件 BOOL CSDI OpenCVDoc::OnSaveDocument(LPCTSTR lpszPathName) { // TODO: Add your specialized code here and/or call the base class m image.Save(lpszPathName); return CDocument::OnSaveDocument(lpszPathName); } 5 View类中添加显示图片代码 在View类中间添加必要的图片显示代码,主要是在Ondraw里面。 4 Algorithm 3 显示图片的代码 void CSDI OpenCVView::OnDraw(CDC* pDC) { CSDI OpenCVDoc* pDoc = GetDocument (); AS- SERT VALID(pDoc); // TODO: add draw code for native data here CImage & img = pDoc ->m image; CRect r; GetClientRect (&r); img.DrawToHDC(pDC->GetSafeHdc() ,r); } 编译整个程序,就可以通过“打开菜单”打开图像并且显示在MFC的View类 中了。 Figure 6: 打开后的lena图片 6 感谢和后记 • 有了此模板,我想在MFC中使用OpenCV的别的操作应该都不是很困难。 • 本教程的书写,得到了 LYX–一个所见即所得的latex编辑器,以及中文 tex论坛的MiCtex软件包的支持,对此表示感谢。 5 • 同时,也得到了OpenCV中国社区广大网友的支持和帮助,对此也表示感 谢。 6
还剩5页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

bmbm

贡献于2015-11-07

下载需要 8 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf