以前都是32位系统配置OpenCV,最近用64位的Win7,所以将搜索到的资料分享之。
=====
2012.12.28 补充
1. 现在的OpenCV已经更新至2.4.3
2. D:\My Documents\Visual Studio 2010\OpenCV\opencv\opencv build\install\include  最后大概这个位置,把install里的lib还有bin追加到project的linker还有vc++ directories的时候,要细化到更下面的包含h文件的文件文件夹
3.这里的测试用例我用的是vs2008的那个测试用例,顺利通过
4.最后确实会出现link error就是换成x64即可解决

经过admin验证,本篇配置是OK的
=======
http://knightzzyy29.blog.163.com ... 745201191035041671/
http://knightzzyy29.blog.163.com ... 745201191043757402/
http://blog.csdn.net/zackzhaoyang/article/details/6883996
折腾了三天,终于搞好了~个人以为,环境变量的配置,程序的编译和debug要比写程序本身要繁琐的多。因为觉得收获颇多,故分享至此。
chapter 1   配置 OpenCV 需要准备哪些软件?

首先是版本的问题,对于所安装和配置的软件包,首先版本上要兼容。本人所用的软件列表如下,都是免费,都可以官网下载:

1. cmake-2.8.1-win32-x86
关于此软件的介绍参照:http://en.wikipedia.org/wiki/Cmake . 简单来说,是一个Build软件,利用本身自带的gui界面程序可以进行近乎傻瓜式的操作。
2. OpenCV-2.3.1-win-superpack.exe
主角!具体介绍参照:http://opencv.willowgarage.com/wiki/ . 简单的来说,是一个用C/C++写成的专门用来图像处理和机器视觉的开源程序包。2.3.1为写博客为止的最新版本。其功能强大,本人也是才开始学习。
3. intel TBB 3.0
此程序属于第三方支持,并非是必须,不过在此出现是用来提供并行计算。简单的说,因为OpenCV的默认环境为单核单CPU,所以要想充分利用双核或者多核的机器实现并行运算,需要配置此软件。除此之外,还有很多第三方支持,比如QT,python等等……
4. Visual Studio 2010
这个不解释。个人认为其存在的价值就是提供了非常方便的编译功能,不用自己写makefile,以及设定修改属性的人性化GUI。因为好用,所以不免费。免费的编译器比如mingw,配合eclipse使用也可以,不过两者的结合同样需要大量的配置过程。当然,opencv 也可以在linux,android等系统下运行。高手以及喜欢自我挑战的人可以去尝试。

除了以上所用的程序之外,用到的参考资料就是opencv自带的tutorial, 这个可以在 OpenCV-2.3.1-win-superpack.exe 解压之后的文件夹中的文件夹“doc”内找到,名叫 opencv_tutorials.pdf. 其中 page14 有youtube视频连接,个人觉得非常有用,适合新手。


在运用以上提到的软件之前,个人习惯先建立相应的文件夹,以便于存放解压缩或者build files 等等。所建立的文件夹如下:
D:\My Documents\Visual Studio 2010\OpenCV  \  opencv  \  opencv source // 用来存放解压于OpenCV-2.3.1-win-superpack.exe 的文件
                            ..\opencv   \ opencv build // 用来存放用cmake build之后的文件
                             ..\opencv \ preperty config(manual) //用来存放project configuration (后面会提到)
                             ..\Opencv \ deps // 用来存放第三方软件,比如intel TBB 3.0

chapter 2 解压配置第三方软件
解压intel TBB 3.0(tbb30_20100406oss_win.zip)到文件夹 D:\My Documents\Visual Studio 2010\OpenCV\deps, 然后配置系统环境变量。右键单击桌面上的 computer, 左键单击左侧 Advanced system settings, 然后在窗口 System Properties中左键单击右下方按钮Environment Variables, 弹出对话框。 在system variables(注意是system variables, 不是 user variables for XXX)中打开path, 添加路径 “D:\My Documents\Visual Studio 2010\OpenCV\deps\Intel TBB 3.0\bin\intel64\vc10”, 确定,保存,退出。


chapter 3  cmake应该怎么用?


首先解压 OpenCV-2.3.1-win-superpack.exe 到文件夹D:\My Documents\Visual Studio 2010\OpenCV \ opencv \ opencv source.
解压之后如图所示:

安装cmake到任意路径(本人所选路径为 D:\CMake 2.8)然后打开文件cmake-gui.exe. "Where is the source code:"那一行选择刚才提到的解压后的opencv, 即 ../opencv/opencv source; "Where to build the binaries:"那一行选择想要Build之后的文件,即 ../opencv/opencv build. 点击configure, 然后再出现的列表中选择相应的编译器(窗口 specify the generator for this project)。在此注意,所选择的编译器一定要匹配,因为本人所用为Visual Studio 2010, 操作系统为win7 64位,故选择Visual Studio 10 Win64! 后面的设置中有很多是关于操作系统版本的问题,不要弄错~ 之后会在那个最大的窗口中出现一片红色,在此取消勾选 BUILD_NEW_PYTHON_SUPPORT, 勾选 WITH_TBB。 再次点击按钮configure,然后出现一个红色条,内容为TBB_INCLUDE_DIR, 然后按照下图选择它的value:(ps,请无视where to build .. 那一行中的 build2 =。=!)

在对话框中填入路径D:/My Documents/Visual Studio 2010/OpenCV/deps/Intel TBB 3.0/include, 之后再次点击按钮 configure, 会再次出现红色条,内容为TBB_LIB_DIR, 同理,选择路径 D:/My Documents/Visual Studio 2010/OpenCV/deps/Intel TBB 3.0/lib/intel64/vc10 (注意!lib的路径填写要精确到操作系统下编译器这一步!)。 之后再次点击按钮configure, 这是无红色条出现,并且在下面的安装日志中有如下信息:
General configuration for opencv 2.3.1 =====================================

Built as dynamic libs?: YES
Compiler: cl
C++ flags (Release): /DWIN32 /D_WINDOWS /W4 /EHsc- /GR /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /MD /O2 /Ob2 /D NDEBUG /Zi /Oi
C++ flags (Debug): /DWIN32 /D_WINDOWS /W4 /EHsc- /GR /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
Linker flags (Release): /STACK:10000000 /machine:x64 /INCREMENTAL:NO /debug
Linker flags (Debug): /STACK:10000000 /machine:x64 /debug

GUI:
Win32 UI: YES

Media I/O:
ZLib: build
JPEG: build
PNG: build
TIFF: build
JPEG 2000: build
OpenEXR: NO
OpenNI: NO
OpenNI PrimeSensor Modules: NO
XIMEA: NO

Video I/O: DirectShow

Other third-party libraries:
Use IPP: NO
Use TBB: YES
Use Cuda: NO
Use Eigen: NO

Interfaces:
Python: NO
Python interpreter: NO
Python numpy: NO (Python wrappers will not be generated)
Java: NO

Documentation:
Sphinx: NO
PdfLaTeX compiler: NO
Build Documentation: NO

Tests and samples:
Tests: YES
Examples: NO

Install path: D:/My Documents/Visual Studio 2010/OpenCV/opencv/opencv build2/install

cvconfig.h is in: D:/My Documents/Visual Studio 2010/OpenCV/opencv/opencv build2
-----------------------------------------------------------------

Configuring done

之后点击按钮Generate,成功后关闭cmake (以后没它什么事了), 查看文件夹opencv build, 应该包含如下内容:



特别应注意文件 OpenCV.sln, 此为visual studio 2010 的 solution文件,双击打开它,然后进入后续章节。

chapter 4 在visual studio 2010中的配置
在前面说到cmake 已经把生成的代码放入文件夹 ../opencv/opencv build中, 其中有一个名叫OpenCV.sln的文件(这个为VS2010 solution文件, 一个solution 包含很多projects), 双击打开,出现如下图所示:


简单说一下,vs2010主要有两种模式,分别是debug 和 release。 模式可以通过如图所示的位置选择。需要注意的是,因为先前我们cmake采用的是64位VS10编译器,在这里需要选择编译器x64, 而不是win32, 否则会出错。其实编译器的选择在用cmake进行Build时就选定了,后面凡是牵扯到操作系统版本的问题,一概与之匹配。
  随后的操作是很简单,就是分别先后在debug and release模式下对project "ALL_BUILD" 进行 build。便于文件方便管理,我们可以把生成的文件同一放到一个文件夹中。其实这个可以通过build 那个名叫“INSTALL”的project就可以,方法同样,在debug 和 release模式下分别build。之后,需要的文件就被方便的存到一个名叫install的文件夹中,其路径为 D:\My Documents\Visual Studio 2010\OpenCV\opencv\opencv build\install, 包含的内容如下图所示:



至此,opencv的安装配置过程全部结束了,可以单击VS2010右上角的X退出程序。然而你可能会有疑问,这个安装之后,究竟怎么用呢?

chapter 5  OpenCV怎么用?

opencv 提供了好多类和函数来实现各种不同的功能,然而我们要想利用这些功能,需要进行环境变量的配置。
首先是系统环境变量的配置,其目的简单的说,就是能让计算机在任何路径下都能够识别OpenCV的动态lib (也就是DLL文件)。操作为:my computer (press right button) --> Advanced system settings (left click, on the left side of this panal) -->Envrionment variables. 在弹出的对话框中选择system variables中的Path, 在其中添加路径 D:\My Documents\Visual Studio 2010\OpenCV\opencv\opencv build\install\bin。 这里注意,其实我们可以打开cmd文档用命令行来定义路径D:\My Documents\Visual Studio 2010\OpenCV\opencv\opencv build\install 为一个新的路径名,(定义命令为 setx)比如OPENCV_INSTALL, 然后在添加路径时写入 %OPENCV_INSTALL%\bin, 这样做的好处是cmd下面定义的路径名被动态锁定,因此当文件夹install被移动时,用这种方法设定的路径仍然能被计算机识别。
啊,扯得有点远,现在继续进行opencv的设置。首先打开一个空白的VS2010, “空白”在这里的意思是左侧的solution explorer里面什么也没有。所以我们新建一个。点击新建project,选择win32 console application, 输入相应的名称以及solution名称后,OK;在弹出的Wizard页面中点击application settings,按照下图勾选,完成后点击finish:



转换页面,从solution explorer到property manager, 会发现project下面有两个文件夹,分别是Debug|win32 和 Release | win32。右键点击文件夹Debug|Win32, 选择 add new, 然后新建一个property sheet, 在此本人的命名是tester_debug。 完成之后右键点击之,然后分别在页面C/C++-->General-->Additional Include Directories 内添加路径D:\My Documents\Visual Studio 2010\OpenCV\opencv\opencv build\install\include; Linker-->General--> Additional Library Directories中添加路径 D:\My Documents\Visual Studio 2010\OpenCV\opencv\opencv build\install\lib;Linker-->Input-->Additional Dependencies 中添加如下文件,然后OK退出。:
opencv_core231d.lib
opencv_imgproc231d.lib
opencv_highgui231d.lib
opencv_ml231d.lib
opencv_video231d.lib
opencv_features2d231d.lib
opencv_calib3d231d.lib
opencv_objdetect231d.lib
opencv_contrib231d.lib
  opencv_legacy231d.lib
  opencv_flann231d.lib

需要注意的是,以上每个文件后面都有一个'd',意思是这是debug模式下的文件。还有一组跟这堆文件一模一样,只不过名称后面没有字母d, 表示这些是release模式下的文件。这两种文件共同存在于文件夹install中(你还能记清它在哪里么?)同样的,在Release | win32下面建立一个新property sheet, 命名为tester_release, 对它执行同样的操作,除了加的那一堆*.lib文件没有后缀字母'd'。 我们可以保存着两个新建的property sheets, 在以后的每个opencv project执行前都添加这两个文件。除此之外,还有一种一劳永逸的全局改法,在这里不讲了,tutorial (还记得是哪个tutorial么?)里面说的十分详细。
现在可以编程了,所用的程序为网络上流行的图片读取反色显示程序,参照网址 http://www.opencv.org.cn/index.php/OpenCV_%E7%BC%96%E7%A8%8B%E7%AE%80%E4%BB%8B%EF%BC%88%E7%9F%A9%E9%98%B5/%E5%9B%BE%E5%83%8F/%E8%A7%86%E9%A2%91%E7%9A%84%E5%9F%BA%E6%9C%AC%E8%AF%BB%E5%86%99%E6%93%8D%E4%BD%9C%EF%BC%89, 不过下面的程序的头文件做一点点修改,修改后的头文件为 include<opencv/cv.h>; #include<opencv/highgui.h> 其余不变。保存然后build。 编译不成功,出现了著名的问题 error LNK2019。这个怎么解决?
前面提到的编译器版本问题,在这个新建的project中,编译器为win32,与我们的opencv不匹配,因此需要将其改为X64。 修改为选择相应下拉菜单中的configure manager, 然后再按照下图所示配置:



之后再次build,成功了,生成的.exe文件在这个路径下 :D:\My Documents\Visual Studio 2010\Projects\opencv_test\x64\Debug(or release)。 如果直接点击这个程序,会出现闪一下就关闭的问题。因为当main函数的结构是 int main(int argc, char* argv[ ])形式的时候,需要在调用的时候追加变量。在这个例子中,变量就是随便一张图片。这个exe文件应该在cmd下调用,后面跟着你想要反色的图片, 命令如下:

D:\My Documents\Visual Studio 2010\Projects\opencv_test\x64\Release> opencv_test.exe "D:\My Pictures\2011-09-06~10-02 Bayern, Germany\IMG_8023.JPG"

显示结果如下图:





THE END




共收到 0 条回复
暂无回复。
回帖
B Color Image Link Quote Code Smilies
Command + Enter
快速回复 返回顶部 返回列表