您的位置:首页 > 运维架构

Visual Studio 2015一分钟配置opencv及CMake编译OpenCV3.1(含opencv-contrib)

2016-11-23 14:36 651 查看
本文由@星沉阁冰不语出品,转载请注明作者和出处。文章链接:http://blog.csdn.net/xingchenbingbuyu/article/details/53301987微博:http://weibo.com/xingchenbing 
本文包含以下几个内容,大家可以根据自己的需要自行选取内容观看。至于为什么这么晚才写这么基础的博客,主要是因为没有经过足够多的编译和配置,没有足够的经验实在是不敢写啊。
一、opencv在Visual studio上的配置(只需一分钟,无需添加环境变量)二、用CMake和Visual studio编译opencv程序(注意不是opencv库,下面才是)。三、用CMake和Visual studio编译opencv库。
第一部分给那些不需要自己编译opencv,只想知道如何在Visual studio上配置opencv的同学。第二部分纯属附送,是由于第一部分引发的研究性质的内容。第三部分是如何利用CMake自己编译包含opencv-contrib在内的opencv。

一、opencv在Visual studio上的配置(只需一分钟,无需添加环境变量)。如果你已经从官网下载了编译好的opencv,就就是包含build文件夹的。那么不需要添加环境变量,只需两步可以了。我们所用到的有且只有两个路径。
1.第一个路径能让VIsual studio找到opencv的头文件,直接上图。



***注意***  只需要这一个include文件夹就可以,不用再把include文件夹下面的opencv和opencv2文件夹都加进去。
2.让Visual studio能找到opencv的库,也就是添加附加依赖项。仍然看图。



***注意***  (1)不用一个一个lib文件的添加,直接用路径加*.lib。(2)我这是release模式,如果是debug模式,需要改为*d.lib。不然可能出现一个模式不能用的状况。最后,按照惯例添加环境变量即可。把opencv\x64\vc14\bin添加到系统变量的path后面即可。
至此,配置完成。添加三个路径,我觉得一分钟应该是够了。
二、用CMake和Visual studio编译opencv程序在opencv的官方教程中,有一篇是介绍如何用cmake和g++编译包含opencv的程序:Using OpenCV with gcc and CMake,下面的内容与之类似,不同的地方就是用到的不是g++,仍是是自己电脑自带的Visual studio。这里需要自己写CMakeList.txt。这部分内容的目的就是先熟悉一下CMakeList.txt。
这里我们用opencv官网教程中的那个简单的打开图片并显示的程序,这个文件我命名为open_image.cpp如下:
#include <stdio.h>
#include <opencv2/opencv.hpp>

using namespace cv;

int main(int argc, char** argv )
{
if ( argc != 2 )
{
printf("usage: DisplayImage.out <Image_Path>\n");
return -1;
}

Mat image;
image = imread( argv[1], 1 );

if ( !image.data )
{
printf("No image data \n");
return -1;
}
namedWindow("Display Image", WINDOW_AUTOSIZE );
imshow("Display Image", image);

waitKey(0);

return 0;
}
在open_image.cpp处新建一个名为CMakeList.txt的文本文件。里面添加如下内容:
cmake_minimum_required(VERSION 2.8)
project( DisplayImage )

include_directories ("G:/opencv3.1_vc14/include")
link_libraries("G:/opencv3.1_vc14/x64/vc14/lib/*.lib")

add_executable( DisplayImage open_image.cpp )
可以看到上面的第三行和第四行就是第一部分中我们添加的两个路径,简直一模一样!然后按下Shift的同时右键,在此处打开命令窗口,依次输入以下命令:
cmake -G "Visual Studio 14 2015 Win64" ..
cmake --build . --config Release
在Release文件夹下就生成了DiaplayImage.exe,在DiaplayImage.exe文件夹下命令行(请换成自己的图片路径):displayimage.exe d:/miao.jpg
即可运行程序打开图片。可以看到编写CMakeList.txt和配置Visual studio其实是一样的。
三、用CMake和Visual studio编译opencv库。
opencv3把很多好玩的东西都转移到了opencv-contrib里面,比如人脸识别和SIFT等。官网给出的openc默认是不包含这些内容的。所以如果要用到这些东西,可能就需要我们自己来进行编译了。
编译需要的内容如下:1.CMake,如果没有可以去官网下载一个:CMake。2.opencv和opencv-contrib的源码,可以在github上下载:opencv和opencv-contrib。3.opencv3.1编译依赖下载项。链接:https://pan.baidu.com/s/1qXT5DxU 密码: 48th
4.Visual studio 2015(2013)。
***注意***通常我们用cmake自己编译opencv的时候最耗时的就是编译依赖的下载,而且由于国内网的问题经常下载失败。所以这里我们先下载好,然后把ffmpeg和ippicv文件夹分别覆盖opencv/3rdparty文件夹下的同名文件夹。
详细步骤如下:
(1)首先建立一个build文件夹,当然也可以是你喜欢的任何名字都行。
(2)在cmake的bin文件夹打开cmake-gui.exe,然后再下图中1,2出分别选择为opencv-master的路径和刚才新建的build的路径。opencv-master就是包含CMakeList.txt的文件夹。最后点击Configure按钮。



(3)选择编译器,这里选vs 2015 64位,根据自己的实际情况选择。然后点击Finish.



(4)然后等它配置完就会看到一片红。这里我们有两个地方需要修改或者注意。
一是推荐不选BUILD_opencv_world。它的作用就是相比于opencv2的版本添加附加依赖项要一个一个添加的反人类方法,直接生成一个opencv_world310.lib,然后只需要添加这一个就可以了。然后看了上面的第一部分你就知道这个没啥吸引力了。更重要的是,选它特别容易编译出错!默认是不选的,不要勾选,不要勾选,不要勾选
二是把opencv-contrib加上。在OPENCV_EXTRA_MODULES_PATH,一定要添加到opencv-contrib-master/modules文件夹的路径。
(5)继续点击config按钮,看到一部分还是红色



(6)继续点击config按钮,看到已经没有红色全部变白了。这个时候可以点Generate按钮了。



最后我们可以在最下方看到Configuring doneGenerating done



(7)打开build文件夹,可以看到生成了OpenCV.sln工程文件,用Visual studio 2015打开。设置是debug还是release模式。在Solution ‘OpenCV’上右键-Build Solution。耗费时间较长。等这个完成之后选择INSTALL,然后右键-Project only-build only INSTALL。在build\install文件夹下即可生成我们需要的头文件和库文件。





至此编译完成,关于如何一分钟内在Visual studio上配置opencv,我想你已经知道了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: