WIN7系统下在VC2008中配置OpenCV并实现一幅图的显示

来源:互联网 发布:java 热更新 编辑:程序博客网 时间:2024/06/07 07:33

本文主要讲述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;  PS:为什么不是vc10、vc11,而是vc9 原因见博文http://blog.csdn.net/wenhao_ir/article/details/51481228

非常重要:环境变量的设置要重启系统后才有效哦~

三、在VS2008中加入OpenCV

打开VS2008,在VS2008中点击“工具”,再点击“选项”,然后选择“项目和解决方案”中的“VC++目录”,接着依次添加库文件、引用文件和包含文件!具体添加哪些,参见下面的几张图。


 


 

四、在VC2008新建一个工程,如下图所示:



建好的工程如下图所示

 

五、写入测试源代码并在编译前对工程的链接器作进一步配置

源代码如下,大家复制粘帖到工程建立好之后的cpp文件中即可!

<pre name="code" class="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;  }  

接下来对工程的链接器输入作进一步配置,否则无法通过编译,这是因为在连接obj文件时需要OpenCV的DLL库作支持。

在视图中调出资源视图侧边栏:

接着在资源视图栏点击项目,选择属性选项。

接着选择附加依赖项,添加debug模式下需要的DLL文件。


(实际上就是路径\opencv\build\x86\vc9\lib 下面带d后缀的lib文件)

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\build\x86\vc9\lib 下面不带d后缀的lib文件)

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!

0 0
原创粉丝点击