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

opencv编译及配置

2016-12-19 11:10 405 查看
本文采用的opencv版本为opencv-2.4.13, 下面是主要步骤(直接用opencv 编译好的build文件夹可以省去自己手动编译的一步)

一、编译opencv源码

1. 将OpenCV2.2.0的压缩包解压到路径D:\OpenCV\opencv (以下所有路径都可自己选择 只要对应起来即可)

2. 安装Cmake,可以到官网http://www.cmake.org去下载并按默认设置安装安装即可。

    此处注意一般vs采用的是win32编译器进行debug和release(即使你是安装的x64),所以下载cmake的时候应该下载32位版本,这样cmake编译出来的是32位的工程文件,x64的cmake编译的是64位工程文件。

3.打开Cmake,在第一行“Where is the source code”后面的那个“Browse Source...”按钮,选择OpenCV的安装路径。我的Opencv2.0安装路径为D:/OpenCV/opencv/,这里需要选择source文件夹,因此输入D:/OpenCV/opencv/sources,同理点击第二行的“Browse Build...”按钮并选择生成的源码路径。这里放置在D:/OpenCV/opencvSln文件夹中,设定完成后点击左下方的configure。

4.在弹出的对话框中选择第一项,并在下拉框中选择编译平台,由于本人电脑上安装的是VS2013,因此,就选择Visual Studio 12 2013,点击Finish。 此处注意你选择使用的编译器应该和你平时使用的编译器相同。

5.需要一段时间,完成时出现以下界面:

6.再次点击Configure按钮,完成时红色部分消失,为以下状态:

7.点击“Generate”按钮,等到最下方信息显示框显示点击“Generate done”时所有步骤完成!至此,就生成了包含OpenCV函数源代码的Visual Studio工程文件;进入工程文件所在的路径D:/OpenCV/opencvSln,点击open project可以直接进入vs查看生成的解决方案:

此时,你就可以通过vs查看opencv的源码。

8.对源码进行编译:

(1)点击运行,分别生成Debug版本和Release版本。可以看到路径“D:\OpenCV\opencvSln”下多了bin和lib文件夹。这两个文件夹中都包含两个子文件夹Debug和Release,存放的Debug版本和Release版本的静态库与动态库。

(2)在解决方案视图(类视图)中选择“INSTALL”,右键生成。此时在路径“D:\OpenCV\opencvSln\install\include\opencv2”下包含了很多子文件夹,每个子文件夹就是OpenCV2.2.0的各个功能模块的头文件。这一步也要分别生成Debug版本和Release版本。

二、opencv库的配置与链接

1.将“D:\OpenCV\opencvSln\bin”加入到系统环境变量中。

在控制面板——系统和安全——系统——高级系统设置——环境变量里的“PATH”下添加“D:\OpenCV\opencvSln\bin”

2. 在VS2013项目中配置OpenCV。此步有多种方法,鉴于debug和release链接的lib文件不同,此处我采用的是将opencv链接的debug和release分别配置为一个属性表,在以后需要用opencv库的项目中都添加这个配置好的属性表即可。其他方法详见OpenCV在Visual
Studio中的属性表配置方法。

(1)首先新建一个vs控制台项目,在属性管理器中选择Debug|Win32,右键选择添加新项目属性表

(2)创建新属性表后如下图,选择你创建的属性表,右键“属性”。

(3)选择VC++目录,点击包含目录,点击右侧下拉按钮编辑,将上一步install编译生成的头文件目录include添加进包含目录中。我这里是如下三个目录:

D:\OpenCV\opencvSln\install\include

D:\OpenCV\opencvSln\install\include\opencv

D:\OpenCV\opencvSln\install\include\opencv2

注意:如果直接使用opencv编译(build)生成的头文件,目录有所不同,但都是在include文件夹下面,即:

D:\OpenCV\opencv\build\include

D:\OpenCV\opencv\build\include\opencv

D:\OpenCV\opencv\build\include\opencv2

(4)将编译好的lib目录添加进库目录,此处为debug的属性页,将编译生成debug版本的lib文件目录添加到库目录

D:\OpenCV\opencvSln\lib\Debug

(5)链接库的配置。

同样在属性页中,选择 属性->链接器->输入->附加依赖项:

编辑附加依赖项,将lib文件夹中的lib文件名全部添加到附加依赖项中。

我使用的2.4.13版,此处先配置debug版本的文件,因此lib文件为:(数字为版本号,d表示为debug版本)

opencv_calib3d2413d.lib

opencv_contrib2413d.lib

opencv_core2413d.lib

opencv_features2d2413d.lib

opencv_flann2413d.lib

opencv_gpu2413d.lib

opencv_haartraining_engined.lib

opencv_highgui2413d.lib

opencv_imgproc2413d.lib

opencv_legacy2413d.lib

opencv_ml2413d.lib

opencv_nonfree2413d.lib

opencv_objdetect2413d.lib

opencv_ocl2413d.lib

opencv_photo2413d.lib

opencv_stitching2413d.lib

opencv_superres2413d.lib

opencv_ts2413d.lib

opencv_video2413d.lib

opencv_videostab2413d.lib

(6)到此为止,debug的文件库目录和链接就已经配置完成,如果步骤没有问题,此时vs就能够用debug运行调用opencv库了;若要使用release采用同样的方法对release版本进行配置即可。

目录:

附加依赖项:

opencv_calib3d2413.lib

opencv_contrib2413.lib

opencv_core2413.lib

opencv_features2d2413.lib

opencv_flann2413.lib

opencv_gpu2413.lib

opencv_haartraining_engine.lib

opencv_highgui2413.lib

opencv_imgproc2413.lib

opencv_legacy2413.lib

opencv_ml2413.lib

opencv_nonfree2413.lib

opencv_objdetect2413.lib

opencv_ocl2413.lib

opencv_photo2413.lib

opencv_stitching2413.lib

opencv_superres2413.lib

opencv_ts2413.lib

opencv_video2413.lib

opencv_videostab2413.lib

三、测试程序:

使用一个小的测试程序进行测试opencv库的配置

nclude<iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

using namespace cv;

int main()
{
// 读入一张图片(游戏原画)
Mat img = imread("building.jpg");
// 创建一个名为 "游戏原画"窗口
namedWindow("游戏原画");
// 在窗口中显示游戏原画
imshow("游戏原画", img);
// 等待6000 ms后窗口自动关闭
waitKey(6000);
return 0;
}

结果如下:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息