本文主要讲述VC2008环境下怎么配置OpenCV,并给出一个图片读入并显示的实例,另外重点讲述了VS2008中Release版的exe和Debug版的exe的生成方法和区别。
欢迎大家加入我图像识别技术交流群:271891601,另外,特别欢迎成都从事图像识别的朋友进行交流,我的QQ号2487872782
一、下载并安装VC2008
VC2008专业版下载地址如下:
链接:http://pan.baidu.com/s/1c1iQb3i 密码:y6ah
下载好VC2008之后一路next安装好就行。
VC2008专业版win7注册补丁及使用方法下载地址:
链接:http://pan.baidu.com/s/1hrxBafU 密码:ct7b
注意:使用方法是我保存的一个网页文件,是html格式,大家用浏览器打开即可,其实这个补丁的作用就是使VC2008专业版在win7下的序列码输入框显示出来,如果是XP系统是用不着这个补丁的!
下载完成后,双击运OpenCV-2.3.1-win-superpack.exe,选择输出目录,我选择的是D:\Program_Files\opencv。然后程序会自动解压缩到你指定的目录。
二、WIN7中配置OpenCV
在“我的电脑”右击弹出“系统属性”对话框,选择“高级”再点击“环境变量”,然后再点击用户变量栏中的path变量,在“编辑用户变量”对话框的变量值输加入以下语句,当然路径值要根据你的OpenCV的位置来定,每个人都不一样。
D:\opencv\opencv\build\x86\vc9\bin;D:\opencv\opencv\build\x86\mingw\bin;D:\opencv\opencv\build\common\tbb\ia32\vc9;
非常重要:环境变量的设置要重启系统后才有效哦~
三、在VS2008中加入OpenCV
打开VS2008,在VS2008中点击“工具”,再点击“选项”,然后选择“项目和解决方案”中的“VC++目录”,接着依次添加库文件、引用文件和包含文件!具体添加哪些,参见下面的几张图。
四、在VC2008新建一个工程,如下图所示:
建好的工程如下图所示
五、写入测试源代码并在编译前对工程的链接器作进一步配置
源代码如下,大家复制粘帖到工程建立好之后的cpp文件中即可!
#include <opencv2/opencv.hpp> using namespace std; #pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"") int main() { const char *pstrImageName = "清纯校花001.jpg"; const char *pstrWindowsTitle = "OpenCV第一个程序(图像识别Q群 271891601)"; //从文件中读取图像 IplImage *pImage = cvLoadImage(pstrImageName, CV_LOAD_IMAGE_UNCHANGED); //创建窗口 cvNamedWindow(pstrWindowsTitle, CV_WINDOW_AUTOSIZE); //在指定窗口中显示图像 cvShowImage(pstrWindowsTitle, pImage); //等待按键事件 cvWaitKey(); cvDestroyWindow(pstrWindowsTitle); cvReleaseImage(&pImage); return 0; }
在视图中调出资源视图侧边栏:
接着在资源视图栏点击项目,选择属性选项。
接着选择附加依赖项,添加debug模式下需要的DLL文件。
opencv_calib3d231d.lib
opencv_contrib231d.lib
opencv_core231d.lib
opencv_features2d231d.lib
opencv_flann231d.lib
opencv_gpu231d.lib
opencv_highgui231d.lib
opencv_imgproc231d.lib
opencv_legacy231d.lib
opencv_ml231d.lib
opencv_objdetect231d.lib
opencv_ts231d.lib
opencv_video231d.lib
继续添加Release模式下需要的DLL文件。
opencv_calib3d231.lib
opencv_contrib231.lib
opencv_core231.lib
opencv_features2d231.lib
opencv_flann231.lib
opencv_gpu231.lib
opencv_highgui231.lib
opencv_imgproc231.lib
opencv_legacy231.lib
opencv_ml231.lib
opencv_objdetect231.lib
opencv_ts231.lib
opencv_video231.lib
细心的朋友应该看出来了,Release的链接输入DLL文件结尾没有d,而Debug的链接输入DLL文件结尾有d。
配置完成后点击确定即可!
这时我们再次进入项目的属性对话框,我们发现此时活动的仍是debug模式,如下图所示:
那么怎么才能将Release置为活动模式呢?方法见下面的三张图所示!
为什么我这里要重点强调这两种模式哪种处于活动状态呢?那是因为项目的exe文件有两种,一种是debug模式下生成的可用于调试的exe,另一个种是Release模式下生成的不能用于调试的最终板。
这一点请大家务必注意,因为不同模式下运行所需要的DLL文件是不同的,如果这里没设置对,就会出现许多意想不到的错误。
六、编译生成debug和Release两个版本的exe文件,并运行看结果!
首先编译,生成两个版本的exe文件,分别是Release版本和debug的版本!这里说明一下,在VS2008中,编译之后生成的exe文件有两类,一类是Release版,这一类不含调试信息,不能用来调试,而debug的版本则可以用调试。
将模式分别切换为Release活动模式和Debug活动模式(怎么切换,我在第五点中有说明哈),并点击生成中的“生成解决方案”或“生成testopencv”即分别成成了两个版本的exe文件。注意,一定要切换到对应的模式才能生成对应的exe文件。
编译方法如下图所示:
接下来,我们看到工程文件夹下生成了两个文件夹,分别是debug和Release,如下图所示:
用下面的链接下载咱们的测试图片然后分别放到debug、release和testopencv三个文件夹下。
待测试图片下载链接:http://pan.baidu.com/s/1dEzdeBB
这里要说一下,从VS2008的菜单栏调试中运行程序(如下面第一幅图所示)的默认根目录是在你的工程文件下,而不是在debug目录下,所以testopencv文件下也要放一幅待测试的图。而且以这种方式运行的exe都是debug下的exe,而不管你的活动状态是Release还是debug,这两种模式的切换只是生成不同版本的exe。
然后我们以三种方式分别运行程序:
第一种如下图所示:
第二种 debug文件下的exe文件
第三种 release文件下的exe文件
三种的试验结果都如下图所示:
这就说明我们成功了!
好了,WIN7系统下在VC2008中配置OpenCV并实现一幅图的显示的经验分享就到这里,欢迎大家特别是成都的朋友交流。交流群:271891601, QQ号2487872782!