OpenCV 3.0.0+contrib+VS2013配置方法

OpenCV 3.0.0+contrib+VS2013配置方法

1、工具需求

其中前两项为必须,第三项可选。第三项主要是OpenCV3中额外提供的一些图像处理算法,其中包括的内容可以在https://github.com/Itseez/opencv_contrib/tree/master/modules/中可以看到。有些算法相当有用,例如图像追踪、光流、MATLAB接口等等。但就目前来看,有些库似乎还存在BUG,例如adas,http://code.opencv.org/issues/3897/;有些库则需要其他相关库的支持,如CVV需要QT5的支持。

2、CMake生成项目

  1. 解压缩上面3个压缩包。这里我分别讲OpenCV解压到D:\opencv-3.0.0,OpenCV_contrib解压到D:\opencv_contrib-master。CMake路径随意,只要能找的到就行。
  2. 打开CMake-gui。在Browse Source下输入D:\opencv-3.0.0,Browse Build输入D:\opencv-3.0.0\build。为了方便下面说明,将Grouped与Advanced勾选上。然后单击configure。此时会让你选择编译器。这里使用的是VS2013,如果想编译32位版本的OpenCV就选择Visual Studio 12 2013,想编译64位版本的就选择Visual Studio 12 2013 Win64
  3. Configure过程中CMake可能会需要下载一些东西,可能需要一段时间。主要需要的是IPP以及ffmpeg的一些东西。如果下载速度较慢或者下载完成后MD5校验错误的话,需要重新在别处下载。IPP可以在http://sourceforge.net/projects/opencvlibrary/files/3rdparty/ippicv/下载。注意是windows_20141027的版本。而ffmpeg我是直接使用CMake下载的,因而就不提供第三方的下载地址了。这些包最后都应该放到D:\opencv-3.0.0\3rdparty底下对应的目录,最好的方法是先让CMake下一小会儿,然后直接将完整的文件到对应的目录下进行替换。
  4. Configure结束后后会出现一大堆的选项,这里就是配置的关键。这里我觉得OpenCV设置的比较不合理的地方在于,一些用户不一定有安装的第三方库会默认勾选,例如CUDA、VTK、EIGEN等等,而不像OpenCV2里面是用户依据自己的配置进行选择的。所以这里就要将一些我们不会用到的东西去除,而需要用到的东西自己勾上。这些选项主要是在WITH这个GROUP里面。下面主要讲几个比较常用或重要的选项。
    • CUDACUFFTCUBLAS。都是nViDIA关于GPU并行计算的库,没有的话还是去掉吧。
    • VTK。一个对OPENGL底层函数进行了良好封装的3维显示库。OpenCV3.0中利用VTK进行3D模型的显示。
    • OpenMPTBB等。都是CPU并行计算的支持库,具体区别自行谷歌百度。用的是VS2013的话是肯定支持OpenMP的。
    • QT。一个跨平台的UI设计库。
    • FFMPEGGIGEAPIIPP等。CMake下的3rdparty/download有这些的安装文件,只要在BUILD中有将相关的打开即可,因而默认勾选即可。
  5. 如果有下载opencv_contrib,这里需要在OPENCV这个GROUP里把路径输入到CMAKE_EXTRA_MODULE_PATH中。这里输入D:\opencv_contrib-master\module
  6. 确认CMAKE这个GROUP中的CMAKE_INSTALL_PREFIX的路径。这个路径决定了编译生成的lib、dll等文件的放置位置。一般保持不变即可。这里的路径是D:\opencv-3.0.0\build\install。
  7. 还有几个选项值得提一嘴。在BUILD这个GROUP中有一些选项,例如BUILD_DOCS会生成一些说明文档,BUILD_EXAMPLES则是生成一些使用样例,BUILD_SHARED_LIBS则是生成动态链接库,BUILD_TESTS则是生成测试样例。如果追求编译速度的话,可以考虑将说明文档、使用样例与测试样例都关掉。但如果是想要研究OpenCV3的新特性的话,建议还是需要编译使用样例的。
  8. 再次点击configure。一般会出现一些新的选项,通常取决于在WITH中勾选的项目。这里的情况相对而言会复杂一些,但基本上都是在新出现的GROUP中填入相关库的头文件与库文件路劲。如果这个库也是使用CMAKE编译并且系统变量有做过合适设置,CMAKE是能够自动识别的。由于情况比较多,这里就不一一赘述了。
  9. 如果进行了第5步操作,即安装了opencv_contrib,由于这个BUG,这个库的lib无法被正常的生成,因此需要在BUILD这个GROUP中将BUILD_opencv_adas这个选项关掉。
  10. 再次点击configure。如果还有红色项目则对GROUP中需要填写的地方进行填写,反复configure知道没有红色选项为止。
  11. 点击generate。经过一段时间后应该能够在D:\opencv-3.0.0\build下生成VS2013的工程文件OpenCV.sln。

3、使用VS2013编译OpenCV

  1. 打开OpenCV.sln。首先确认解决方案配置中选中了Debug,再单击菜单栏中的生成->生成解决方案。这个需要一段时间。
  2. 生成完成并且确保没有错误以后,在解决方案管理器->CMakeTargets中右键单击INSTALL,选择仅用于项目->仅生成INSTALL。结束后可以在D:\opencv-3.0.0\build\install(也就是前面CMAKE_INSTALL_PREFIX填写的路径)下看到OpenCV的头文件、CMake的配置文件以及生成的lib和dll。
  3. 将解决方案配置中的Debug换成Release,再次重复步骤2。至此,OpenCV的编译就完成了。

4、设置系统环境变量

由于生成了动态链接库,因而还需要设置系统环境变量才能保证程序正常运行。
1. 在开始菜单中右键计算机->属性->高级系统设置,在出来的面板中选择高级->环境变量,出现环境变量面板。之后单击新建,在变量名中填入OpenCV,变量值填入D:\opencv-3.0.0\build\install,单击确定。

2. 在系统变量列表中寻找变量Path,单击编辑。在变量值末尾添加上%OpenCV%;%OpenCV%\x64\vc12\bin;。注意这里的是我填的64位,VS2013编译出来的路径。如果是32位,则要将x64改成x86;如果使用别的版本的Visual Studio编译出来的,则要将vc12改成对应的目录名。这里其实可以到D:\opencv-3.0.0\build\install目录底下看看具体是叫什么。

最后一路确定退出。
3. 之后需要使环境变量生效。老掉牙的方法是重启电脑。事实上可以利用控制台设置一次path再退出控制台就可以了。

5、利用CMake生成OpenCV测试工程

如果不利用CMake而是直接使用Visual Studio建立新工程的话,会存在设置一系列头文件路径和库文件名称的麻烦事。这里采用CMake直接生成工程。配置OpenCV的CMake的样例代码可以到D:\opencv-3.0.0\samples\cpp\example_cmake中找到。其实最主要的就是那个CMakeLists.txt文件,具体每句话的意思和相关的教程可以到网上查找。这里我重头开始建立一个完整的工程。
1. 首先在建立一个新的文件夹,命名为OpenCVTest,这里我建立在D:\底下。
2. 在D:\OpenCVTest下建立一个名为CMakeLists.txt的文本文件。文本文件的内容为

cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
project(OpenCVTest)
find_package(OpenCV 3.0.0 REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
aux_source_directory(. Src)
add_executable(Test ${Src})
target_link_libraries(Test ${OpenCV_LIBS})
  1. 在D:\OpenCVTest下建立一个名为Main.cpp的文件,文件内容为
#include <opencv2/opencv.hpp>
using namespace std;
int main(int ,char**){
    cv::Mat image = cv::Mat::zeros(480,640,CV_8U);
    cv::putText(image,"Hello OpenCV!",cv::Point(20,50),cv::FONT_HERSHEY_COMPLEX,1,cv::Scalar(255,255,255),1,cv::LINE_AA);
    cv::imshow("OpenCVTest",image);
    cv::waitKey();
    return 0;
}
  1. 运行CMake-GUI,在Browse Source中输入D:\OpenCVTest,Browse Build中输入D:\OpenCVTest\build。点击configure直到没有红色项目后,点击generate。
  2. 打开D:\OpenCVTest\build\OpenCVTest.sln编译并运行程序(注意需要将Test这个项目设为启动项目),应该会出现下面的结果。

至此,OpenCV全部的配置就完成了。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值