VS2010中应用opencv步骤

时间:2026-01-19

vs2010的MFC中应用opencv的例子

VS2010的MFC中应用opencv步骤

王良元 2011.11.17

如下步骤前提是VC6和Opencv均已正确安装,默认opencv是装在C:\Program Files下,

后面路径都是这个,如果安装到其他位置,只要改为你安装路径即可。

1、 打开VS2010,新建MFC工程,命名,此处为VS2010_OPENCV,如图1

所示。

2、 点击OK后,依次根据需要选择对应的形式,此处依次为基本对话框

(Dialog based)、去掉UNICODE字符集选项,默认的、静态编译(As a

statically linked library),完成,则弹出基本应用程序界面,如图2所示。

vs2010的MFC中应用opencv的例子

3、删除文本框“TODO:在这里设置对话框”,并添加一个图片控件,选中控件,

右键-》属性,将“Type”选择为框架(rectangle),将ID改为IDC_ShowImg,

适当调整控件大小,添加两个按钮,一个将caption改为ReadImg,实现读入图片

功能,另一个将aption改为EdgeDetect,实现边缘检测功能,如图3所示。

4、在MFC工程中添加opencv的库和头文件,在VS2010中新建工程后,在工程名上右键-》

vs2010的MFC中应用opencv的例子

属性-》配置属性-》VC++ 目录的右边分别添加包含目录和库目录,如下图所示

具体添加内容为:

头文件路径:

C:\Program Files\OpenCV\cxcore\include

C:\Program Files\OpenCV\cv\include

C:\Program Files\OpenCV\cvaux\include

C:\Program Files\OpenCV\otherlibs\highgui

C:\Program Files\OpenCV\otherlibs\cvcam\include

库文件路径:

C:\Program Files\OpenCV\lib

5、在“解决方案管理器”面板点击头文件 ,在VS2010_OPENCVDlg.h

下加入如下代码:

#include "cv.h"

#include "highgui.h"

vs2010的MFC中应用opencv的例子

#define IMAGE_WIDTH 256

#define IMAGE_HEIGHT 256

#define IMAGE_CHANNELS 3

然后,在stdafx.h 的#include <afxcontrolbars.h> 下面添加

#pragma comment(lib,"C:\\Program Files\\OpenCV\\lib\\cv.lib")

#pragma comment(lib,"C:\\Program Files\\OpenCV\\lib\\cvaux.lib")

#pragma comment(lib,"C:\\Program Files\\OpenCV\\lib\\cxcore.lib")

#pragma comment(lib,"C:\\Program Files\\OpenCV\\lib\\highgui.lib")

在 类视图面板右击 VS2010_OpencvDlg,右键添加-》添加变量,添加一个

IplImage* 类型的变量 TheImage,如下图,

再双击类视图下面的OnInitDialog,在“// // TODO: 在此添加额外的初始化代码“

”下面添加 TheImage 的初始化代码:

CvSize ImgSize;

ImgSize.height = IMAGE_HEIGHT;

ImgSize.width = IMAGE_WIDTH;

TheImage = cvCreateImage( ImgSize, IPL_DEPTH_8U, IMAGE_CHANNELS );然后双

击 OnPaint,在 if(IsIconic())…的 else 里添加以下代码,用来重绘窗口:

CDialog::OnPaint(); // 重绘对话框

CDialog::UpdateWindow(); // 更新windows窗口,如果无这步调用,

vs2010的MFC中应用opencv的例子

图片显示还会出现问题

ShowImage( TheImage, IDC_ShowImg ); // 重绘图片函数

接着在 CTest_OpencvApp 下面的成员列表中双击 InitInstance,在两个“// TODO:

Place code here to handle when the dialog is…”下面添加:

cvReleaseImage( &dlg.TheImage );即按下“OK”或“Cancel”时,释放TheImage占用的

内存。

6、接下来就是写读取和处理图片的功能函数了。 在资源视图面板双击IDD_VS2010_OPENCV_DIALOG,弹出GUI 编辑界面,双击按

钮 ReadImg,建立按钮点击的消息响应程序,方法为右键按-》添加信息处理事

件,函数处理程序名称设置为 OnBnClickedReadimg,进入代码编辑,

主要的响应操作包括 弹出对话框选择图片文件、读入图片文件、对图片统一缩放至

256*256的大小、显示图像,代码如下:

// TODO: Add your control notification handler code here

CFileDialog dlg(

TRUE, _T("*.bmp"), NULL,

OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY,

_T("image files (*.bmp; *.jpg) |*.bmp; *.jpg | All Files (*.*) |*.*||"),

NULL

); // 选项图片的约定

dlg.m_ofn.lpstrTitle = _T("Open Image"); // 打开文件对话框的标题名

if( dlg.DoModal() != IDOK ) // 判断是否获得图片

return;

CString mPath = dlg.GetPathName(); // 获取图片路径

IplImage* ipl = cvLoadImage( mPath, 1 ); // 读取图片、缓存到一个局部变量

ipl 中

if( !ipl ) // 判断是否成功载入图片

return;

if( TheImage ) // 对上一幅显示的图片数据清零

cvZero( TheImage );

ResizeImage( ipl ); // 对读入的图片进行缩放,使其宽或高最大值者刚好等于 256,再复制到 TheImage 中

ShowImage( TheImage, IDC_ShowImg ); // 调用显示图片函数

cvReleaseImage( &ipl ); // 释放 ipl 占用的内存

其中包含了两个新的成员函数 ResizeImage 和 ShowImage,前者的作用是对读入

的不同大小的图像进行缩放,再通过设置 ROI 的方式将图像存入 256*256 的

TheImage 中;后者是将图像 TheImage 显示到图片显示控件 IDC_ShowImg 窗口的

正中部位。为了实现这两个功能,首先在类视图面板右击 CVS2010_OPENCVDlg,选择 添

加》添 …… 此处隐藏:3260字,全部文档内容请下载后查看。喜欢就下载吧 ……

VS2010中应用opencv步骤.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:4.9 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:19元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219