分享

VS2008(10及以上版本)opencv2.413的配置

 行走在理想边缘 2018-02-21

          回想起来,接触OpenCV已有一年时间了,时间匆匆莫如白驹过隙,沧海桑田回首转瞬即逝,刚开始自己什么也不懂,没有一定的积累,更不知道如何去写博客,以此篇博客为始,记录岁月的痕迹。

 

好了,这篇文章作为OpenCV的启程篇,自然少不了OpenCV的配置与安装。(之前我也是由于版本原因很头痛,相信看了这篇配置,再也没有版本的原因,如有问题,欢迎留言或者私信交流。备注:opencv3.0以上版本没有用过,但是配置过程应该更简单,可以移步至这里浅墨大神的文档有详细的介绍)

配置分为前篇与后篇,前篇你可以粗略的看看,后篇则是一步步照着操作就好!

       先放张测试用图,作为学图像处理的,写代码的,养眼很重要,都是美女图大笑

       

旅途正是开始,前方道路崎岖,加油吧!少年

前篇

1.下载VS2008(10或以上版本)以及OpenCV SDK

VS不用多说,不会自行百度经验上一步步来(注意:08版本需要打补丁)。直接进入OpenCV官网下载,然后解压到自己创建的目录即可。
请移步官网进行下载,点击release
然后会有相应的版本,选择一个你喜欢的版本,如我选的OpenCV2.413 (Win pack)
下载完成后得到,双击进行解压缩到某个地方,有人推荐放到D:\Program Files\下,我觉得都行,只要你记住就行了,我直接放在F盘,F:\OpenCV2.413,(因为OpenCV项目文件打包的时候,根目录就是opencv,所以我们不需要额外的新建一个名为opencv的文件夹,然后再解压,那是多此一举的事情)然后点击Extract按钮。

等一段时间,很快,然后就得到了OpenCV的build 与sources文件夹

1.1 VS2008的opencv安装

第一步:下好了OpenCV还需要另外一个工具,Cmake(这个东西是啥,我也说不太清楚,你以后会大量接触到),百度搜索Cmake进入Cmake官网选择相应的版本下载,一年前我还用2.8.12(VS2008请用这个版本),现在直接都是3.9.1
至于为什么64位系统用的win32-x86,不太清楚,难道是由于我们的编译器都是基于win32平台的?
第二步:打开安装好的Cmake程序,你会看到下面一个界面
第一行的source code 路径选择我们刚刚OpenCV解压得到的sources文件夹
第二行的build路径可以在刚刚OpenCV得到的build路径下面新建一个文件夹,例如新建一个for2008(随自己爱好),路径选择完毕,点击之前可以点击左上角File->delete cache(清除缓存)则可以点击下面的configure button,会弹出下面的选择框

这个地方注意一点,选择与自己VS对应的版本,如我的是VS2008,例如:VS 2013,就选择VS2013,官方文档说明不用加Win64,32位系统可能还是需要加上,但是32位的人应该非常少吧!

点击Finish,等待它配置完成,会看到界面上出现很多可以勾选的选项,界面为红色,一般为默认配置,如有特殊需要,可以自行勾选(新手不建议)


看到 Configuring done,则需要再点击一次Configure button,等待配置完毕,界面重新恢复白色。


最后点击Generate button,等待完毕即可关闭Cmake 程序。

第三步: 在刚刚 Cmake build path 的路径下可以看到一个OpenCV.sln的 visual C project, 点击运行,在Debug和release的环境下都编译一遍,这个时间可能有点漫长,确认编译无误后,恭喜你,万里长征已经看到希望

第四步:编译完成后,在刚刚Cmake输出的路径下E:\opencv2.413\opencv\for2008看到 bin、 lib 文件夹 再加上之前opencv解压出来E:\opencv2.413\opencv\build文件夹下的include文件夹(对我们非常有用),接下来万事俱备,只需打开VS,进行一番配置东风的准备。





1.2.建立VS2008 OpenCV的第一个工程

第一步:将刚刚得到的 bin  lib  include 文件夹拷贝出来放在一个文件夹下,例:
E: \studyOpenCV



打开 VS2008,新建一个project,鼠标右键工程名,设置属性,首先 common properties 里 character set 请选择 use multi_byte character set (这一点很重要,请注意)

然后点击 C/C++ ->general 在 additional include directories 选择刚刚上面所说的三个include路径(记住是三个)

E:\studyOpenCV\include
E:\studyOpenCV\include\opencv
E:\studyOpenCV\include\opencv2


再点击linker->general 在additional library directories 选择:
E:\studyOpenCV\lib


最后在 bin 文件下面 debuge 文件夹下的.dll 的文件(鼠标右键按项目类型排列)全部拷贝到所建的 project下面的 debuge 文件夹(直接丢到工程名文件夹下也可以,图片也是放在这里面)下面


就用载入并显示一张图片到窗口的程序,用于我们的配置测试吧。
新建一个空项目的控制台应用程序,新建一个cpp文件,然后粘贴如下代码:

  1. #include<iostream>  
  2. #include <opencv2/core/core.hpp>  
  3. #include <opencv2/highgui/highgui.hpp>  
  4.   
  5.   
  6. //#pragma comment (lib, "vfw32.lib")  
  7. #ifdef  _DEBUG  
  8.   
  9. #pragma comment (lib, "e:\\study\\lib\\opencv_core2413d.lib")  
  10. #pragma comment (lib, "e:\\study\\lib\\opencv_highgui2413d.lib")  
  11. #pragma comment (lib, "e:\\study\\lib\\opencv_imgproc2413d.lib")  
  12. #else  
  13.   
  14. #pragma comment (lib, "D:\\study\\lib\\opencv_core2413.lib")  
  15. #pragma comment (lib, "D:\\study\\lib\\opencv_highgui2413.lib")  
  16. #pragma comment (lib, "D:\\study\\lib\\opencv_imgproc2413.lib")  
  17. #endif  
  18.   
  19. using namespace cv;  
  20.   
  21.   
  22. int main()  
  23. {  
  24.     // 读入一张图片(美女)  
  25.     Mat img=imread("girl.jpg");  
  26.     // 创建一个名为 "美女壁纸"窗口  
  27.     namedWindow("美女壁纸");  
  28.     // 在窗口中显示美女  
  29.     imshow("美女壁纸",img);  
  30.     // 等待6000 ms后窗口自动关闭  
  31.     waitKey(6000);  
  32. }  

这样,VS2008的配置就到此结束了,为什么要讲VS2008的配置呢?因为这是一个可以忽视版本的配置方法,不需要配置电脑的环境变量,你可以发现OpenCV2.413-> build->x86->只有vc11(对应VS2012)或者vc12(对应VS2013)文件夹,没有你想要的VS版本,那么你就可以尝试这种配置方法,当然你也可以选择换VS版本或者OpenCV版本。



//-------------------------------------------------------------------------------我是漂亮的分割线----------------------------------------------------------------------------------


后篇

二、对应版本的配置方法,如VS2010+OpenCV2.4.9

第一步:下载VS+OpenCV以及解压缩这一步直接跳过
第二步: 配置环境变量
       这步的配置方法如下:

【计算机】->【(右键)属性】->【高级系统设置】->【高级(标签)】->【环境变量】->“双击”系统变量中的PATH->在变量值里面添加相应的路径。如图:

   

    对于32位系统,就添加:
”;…… opencv\build\x86\vc10\bin”(和之前的就有有的环境变量用英文的分号“;”进行分隔)
 
而对于64位系统,可以两个都添加上:
”;…… opencv\build\x86\vc10\bin”
和”…… opencv\build\x64\vc10\bin”,
这样,到时候才可以在编译器Win32和X64中来回切换都吃得开,游刃有余~

例如,我的就是:
E:\opencv2_4_9\opencv\build\x86\vc10\bin;E:\opencv2_4_9\opencv\build\x64\vc10\bin
变量添加完成后最好注销系统或者重启一下,才会生效。

下面依然是打开VS2010新建一个工程进行Opencv的属性添加,不会建工程的私信我,相信你们都是聪明的,就不贴了。
在菜单栏里面点<View>--<Property Manager>,那么就会在visual studio中多出一个Property Manager工作区来。


Property Manager 工作区中,点击项目->Debug|Win32->右键选择添加一个新的工程属性表



保存完毕双击它就开始添加额外的属性了,就是lib include 那些了。和上面08的几乎一样,不多说了,截几张图看看。



接下来就是工程库lib了(稍微比08多了一步,注意一下)

添加上E:\opencv2_4_9\opencv\build\x86\vc10\lib这个路径。(最好不要复制粘贴我给出的路径,而是自己去预览里面指定出来,这样会准确得多)
另外,这里的vc10表示vs2010,如果是其他版本的visual studio,稍微要微调一下。
这里我们补充完整:vc8 = Visual Studio 2005,vc9 = Visual Studio 2008,vc10 = Visual Studio 2010,vc11 = Visual Studio 2012,vc12 = Visual Studio 2013。

不要以为到这里就完了,还有一步链接库的配置

对于OpenCV2.4.9】,添加如下249版本的lib(这样的lib顺序是:19个带d的debug版的lib写在前面,19个不带d的release版的lib写在后面)
opencv_ml249d.lib
opencv_calib3d249d.lib
opencv_contrib249d.lib
opencv_core249d.lib
opencv_features2d249d.lib
opencv_flann249d.lib
opencv_gpu249d.lib
opencv_highgui249d.lib
opencv_imgproc249d.lib
opencv_legacy249d.lib
opencv_objdetect249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_nonfree249d.lib
opencv_ocl249d.lib
opencv_photo249d.lib
opencv_stitching249d.lib
opencv_superres249d.lib
opencv_videostab249d.lib

opencv_objdetect249.lib
opencv_ts249.lib
opencv_video249.lib
opencv_nonfree249.lib
opencv_ocl249.lib
opencv_photo249.lib
opencv_stitching249.lib
opencv_superres249.lib
opencv_videostab249.lib
opencv_calib3d249.lib
opencv_contrib249.lib
opencv_core249.lib
opencv_features2d249.lib
opencv_flann249.lib
opencv_gpu249.lib
opencv_highgui249.lib
opencv_imgproc249.lib
opencv_legacy249.lib
opencv_ml249.lib
可以复制粘贴进去,不要紧张(如图所示)

保存这张属相表,以后新建工程的话我们就只需添加这张存在的属性表就行了。
为了防止今后一些意外的错误,我们做一个暴力加保险的设置

把相关的dll都拷贝到Windows操作系统的目录下。如果你的Windows安装在C盘,那么路径就是c:\Windows\System32。按照之前我的OpenCV的存放环境,这些dll存放在

E:\opencv2_4_9\opencv\build\x86\vc10\bin目录下。


到这个目录下,【Alt+A】全选,【Alt+C】拷贝,然后转到c:\Windows\System32下面,【Alt+V】复制,简单粗暴地就完成了。

PS:对于Windows 8,则要放在要在SysWOW64文件夹中。

 

 

恩,环境配置大功告成,我们来测试一下成果吧~


3 最终的测试

依然就用输出一个美女(换张美女吧吐舌头)的照片的程序,用于我们的配置测试吧!

  1. #include<iostream>  
  2. #include <opencv2/core/core.hpp>  
  3. #include <opencv2/highgui/highgui.hpp>  
  4.   
  5.   
  6. using namespace cv;  
  7.   
  8.   
  9. int main()  
  10. {  
  11.     // 读入一张图片(美女壁纸)  
  12.     Mat img=imread("girl.jpg");  
  13.     // 创建一个名为 "游戏原画"窗口  
  14.     namedWindow("美女壁纸");  
  15.     // 在窗口中显示美女壁纸  
  16.     imshow("美女壁纸",img);  
  17.     // 等待6000 ms后窗口自动关闭  
  18.     waitKey(6000);  
  19. }  

最终结果



好的,这篇配置文章距离我第一次配置OpenCV已有一年时间,这期间我配置了无数次OpenCV,这次所有的贴图依然是亲历亲为,其中不乏很多参考了浅墨大神的博客,程序就是这样,你永远不知道你的下一个bug是什么,如有问题,欢迎大家留言讨论吐舌头
给出浅墨大神的博客地址:大神!你好

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多