2016-01-20  23:55 更新:

关于Opencv3.1的lib文件

opencv_aruco310d.lib
opencv_bgsegm310d.lib
opencv_bioinspired310d.lib
opencv_calib3d310d.lib
opencv_ccalib310d.lib
opencv_core310d.lib
opencv_datasets310d.lib
opencv_dnn310d.lib
opencv_dpm310d.lib
opencv_face310d.lib
opencv_features2d310d.lib
opencv_flann310d.lib
opencv_fuzzy310d.lib
opencv_highgui310d.lib
opencv_imgcodecs310d.lib
opencv_imgproc310d.lib
opencv_line_descriptor310d.lib
opencv_ml310d.lib
opencv_objdetect310d.lib
opencv_optflow310d.lib
opencv_photo310d.lib
opencv_plot310d.lib
opencv_reg310d.lib
opencv_rgbd310d.lib
opencv_saliency310d.lib
opencv_shape310d.lib
opencv_stereo310d.lib
opencv_stitching310d.lib
opencv_structured_light310d.lib
opencv_superres310d.lib
opencv_surface_matching310d.lib
opencv_text310d.lib
opencv_tracking310d.lib
opencv_ts310d.lib
opencv_video310d.lib
opencv_videoio310d.lib
opencv_videostab310d.lib
opencv_xfeatures2d310d.lib
opencv_ximgproc310d.lib
opencv_xobjdetect310d.lib
opencv_xphoto310d.lib

本文主要介绍opecv3.0.0的编译和配置。开发环境是vs2013,系统平台是windows2008。尽管如此,对vs2010或windows7或opencv2.4.x也适用(亲测)。因为在公司是window7+vs2010+opencv2.4.10,在实验室是windows7+vs2013+opencv3.0.0,在寝室是window2008+vs2013+opencv3.0.0,它们配置过程基本一致。写这份文档正是在寝室进行的。

本文分为两部分,第一部分是采用opencv官方编译的库,第二部分介绍自编译和配置。

关于opencv3.0.0的下载和vs2013的安装,略。

第一部分 配置OpenCV官方编译的库

1.解压下载的opnencv3.0.0到C:\opencv3x。若无opencv3x目录,则先新建之。目录结构如下:

   

2.添加环境变量:c:\opencv3x\opencv\build\x86\vc12\bin。不知道如何添加环境变量请百度或谷歌。若是vs2012则将vc12改为vc11。若是vs2010,则只能自己编译啦(详见后文),因为官方编译库已经不支持vs2010。

注:build目录下有x86目录和x64目录的选择。若是x86系统平台,则只能选择x86,因为x86系统只能编译x86的程序。若是x64系统平台,则x86目录和x64目录都可以选,因为x64平台既可以编译x86程序也可以编译x64程序,你自己想写x64的软件还是x86的软件,就选择相应的目录即可。

3.创建空win32控制台应用程序。如下图所示。

4.配置项目属性。

(1)在VC++ Directories->Include Directories追加以下字符串:

c:\opencv3x\opencv\build\include

c:\opencv3x\opencv\build\include\opencv

c:\opencv3x\opencv\build\include\opencv2

(2)在VC++ Directories->Library Directories追加以下字符串:

c:\opencv3x\opencv\build\x86\vc12\lib

(3)在Linker->Input->Additional Dependencies追加如下字符串:C:\opencv3x\opencv\build\x86\vc12\lib目录下的文件名最后个字母为d的所有lib文件。由于这里使用的官方编译好的库,所有只有两个文件:

opencv_ts300d.lib

opencv_world300d.lib

之所以只添加文件名最后个字母为d的lib文件是因为我们的程序工作在Debug模式下。

5. 测试配置是否成功。

添加一个.cpp文件。复制一张图像到工程目录下。我这里复制的是一张名为nao.jpg图像。

测试代码如下:

#include <opencv2\opencv.hpp>	//导入opencv2的常用头文件
using namespace cv;			//导入opencv2库的命名空间
using namespace std;			//导入c++标准库的命名空间
void main()
{
	Mat img = imread("nao.jpg", 1);
	namedWindow("nao", WINDOW_NORMAL);	  //destroyWindow();destroyAllWindows()
	if (!img.data) { return; }
	imshow("nao", img); waitKey(0);
}

  编译运行后结果,如下:

第二部分 自编译和配置opencv库

自编译opencv,通常是为了使用其未集成的库(跟踪源码不一定就要编译opencv,只要你对opencv够熟悉),典型的就是opencv_contrib-master库。

opencv_contrib-master的下载地址:https://github.com/Itseez/opencv_contrib

打开网页后点右侧的“Download Zip”即可下载为.zip文件。如下图所示。

1.解压下载的opnencv3.0.0到C:\opencv3x。若无opencv3x目录,则先新建之。

2.解压opencv_contrib-master到C:\opencv3x\opencv,并重命名为sourcesCotrib。也可不重命名或命名为其它名,看个人习惯。

3.在C:\opencv3x\opencv下新建目录buildOpencv,用于存储cmake后的文件。

4.C:\opencv3x\opencv下的build目录可删除。因为我们要编译自己的库,所以官方的库可以直接删除啦。这样,可以省去2.4G的空间。以上四步之后,目录结构如下:

5.打开cmake-gui(若没有安装则自行安装吧)。

Where is the source code 目录选择:C:\opencv3x\opencv\sources

Where to build the binaries 目录选择:C:\opencv3x\opencv\buildOpencv

单击左下角的“configure”。弹出编译器选择。这里根据自己情况选择,我安装的是vs2013,所以选择vs2013。还有vs2013 win64, vs 2013 arm等选项,无需理会。以X86方式的编译库对X86系统和X64系统都适用。针对arm平台的,没有用过,不发表意见。

单击“finish”后开始配置,配置将不成功。错误的原因是下载“ippicv_windows_20141027.zip”失败。于是到:

http://osdn.jp/projects/sfnet_opencvlibrary/downloads/3rdparty/ippicv/ippicv_windows_20141027.zip/

下载此文件。然后复制到:

C:\opencv3x\opencv\sources\3rdparty\ippicv\downloads\windows-b59f865d1ba16e8c84124e19d78eec57将已经存在的ippicv_windows_20141027.zip覆盖。然后重新“configure”,并反复“configure”直到界面不再出现红色背景。

为使用opencv自带实例和opencv_contrib-master扩展包,需要选中”BUILD_EXAMPLES”,并为OPENCV_EXTRA_MODULES_PATH赋值:C:/opencv3x/opencv/sourcesContrib/modules。再次反复“configure”直到界面不再出现红色背景。之后,单击“generate”。至此,cmake过程结束。

注:也可以在命令提示符下进行cmake过程,命令如下:

cd c:\opencv3x\opencv\buildOpencv

cmake -DOPENCV_EXTRA_MODULES_PATH=C:\opencv3x\opencv\sourcesContrib\modules -DBUILD_EXAMPLES=ON C:\opencv3x\opencv\sources

6. 打开C:\opencv3x\opencv\buildOpencv将有opencv.sln,打开此解决方案。编译“CMakeTargets”下的“INSTALL”。几分钟就编译完成,我的编译结果如下图所示,316个成功,1190个警告,不同系统可能有所不同。

以上生成的Debug版本,若需要Release版本,则还可切换到Release模式下生成一个Release版本。

生成完成之后,可清理解决方案,节省2~3G的空间。OpenCV.sdf也有100M多,将其删除。

注:若要反复编译OpenCV.sln,则不要清理解决方案,因为清理后再“build”相当于“rebuild”,编译时间又要几分钟。若不清理,则可能只花几秒钟。哪些情况下需要反复编译OpenCV了?就是你对源码做了一些更改又想查看更改源码后程序的效果,就得重新编译OpenCV。这里的“更改”比较有意思,只要你动了OpenCV源码,哪怕是你在源码里键入一个空格,然后再删除,表面上看什么手脚也没做啊,但是你就得重编译。

7. 添加环境变量:C:\opencv3x\opencv\buildOpencv\install\x86\vc12\bin

8. 创建空Win32项目,见第一部分的内容

9. 配置项目属性。

(1)在VC++ Directories->Include Directories追加以下字符串:

c:\opencv3x\opencv\buildOpencv\install\include

c:\opencv3x\opencv\buildOpencv\install\include\opencv

c:\opencv3x\opencv\buildOpencv\install\include\opencv2

(2)在VC++ Directories->Library Directories追加以下字符串:

c:\opencv3x\opencv\buildOpencv\install\x86\vc12\lib\x86\vc12\lib

(3)在Linker->Input->Additional Dependencies追加如下字符串:C:\opencv3x\opencv\build\x86\vc12\lib目录下的文件名最后个字母为d的所有lib文件。不同的系统或不同版本的vs,lib文件的个数可能不一样,我的有:

opencv_bgsegm300d.lib

opencv_bioinspired300d.lib

opencv_calib3d300d.lib

opencv_ccalib300d.lib

opencv_core300d.lib

opencv_datasets300d.lib

opencv_face300d.lib

opencv_features2d300d.lib

opencv_flann300d.lib

opencv_hal300d.lib

opencv_highgui300d.lib

opencv_imgcodecs300d.lib

opencv_imgproc300d.lib

opencv_latentsvm300d.lib

opencv_line_descriptor300d.lib

opencv_ml300d.lib

opencv_objdetect300d.lib

opencv_optflow300d.lib

opencv_photo300d.lib

opencv_reg300d.lib

opencv_rgbd300d.lib

opencv_saliency300d.lib

opencv_shape300d.lib

opencv_stereo300d.lib

opencv_stitching300d.lib

opencv_superres300d.lib

opencv_surface_matching300d.lib

opencv_text300d.lib

opencv_tracking300d.lib

opencv_ts300d.lib

opencv_video300d.lib

opencv_videoio300d.lib

opencv_videostab300d.lib

opencv_xfeatures2d300d.lib

opencv_ximgproc300d.lib

opencv_xobjdetect300d.lib

opencv_xphoto300d.lib

注:可将C:\opencv3x\opencv\buildOpencv\install内的所有文件复制到C:\opencv3x\opencv\build\内(前面不是已经删除了吗,其实你只要删除build内的内容即可,若真删除了,新建一个也一样的),使得对前一部分介绍的配置也适用。但若重新编译了OpenCV,则要重新复制这些文件。

10.测试是否配置成功。见第一部分内容。

算法库:OpenCV3编译配置的更多相关文章

  1. qt5.11.2+vs2017环境下opencv3.4.1编译配置

    OpenCV是一个开源的计算机库,它可以帮助视觉工作者做很多富有创造性的工作,在图像处理领域扮演着重要的角色.由于opencv3.x的存在,不管你是学生还是研究人员,是专家还是初学者,都可以快速的建立 ...

  2. Win10 下Cmake编译配置 Opencv3.1 + Cuda7.5 + VS2013

    折腾了三天终于配置成功了,在此写下编译配置的全部步骤和遇到的很多坑. 整体介绍: OpenCV 中 CUDA 实现的函数还不是太多,使用前要在OpenCV的官网上确认以下你想要的功能是否已经实现,否则 ...

  3. (2)RGB-D SLAM系列- 工具篇(依赖库及编译)

    做了个SLAM的小视频,有兴趣的朋友可以看下 https://youtu.be/z5wDzMZF10Q 1)Library depended 一个完整的SLAM系统包括,数据流获取,数据读取,特征提取 ...

  4. 算法库:Matlab与C++混合编程

    算法库:Matlab与C++混合编程 最近做光流算法预演过程中,下载的源码中涉及到了Matlab和C++的混合编程.在同事Matlab2014的环境下,程序到是一下就运行通过了.但在我这Matlab2 ...

  5. 【内核】linux2.6版本内核编译配置选项(二)

    目录 Linux2.6版本内核编译配置选项(一):http://infohacker.blog.51cto.com/6751239/1203633 Linux2.6版本内核编译配置选项(二):http ...

  6. 开源库SRT编译指南

    SRT(Secure,Reliable,Transport)是Haivision公司开发的一套开源媒体传输协议,用于在不稳定的网络环境下,优化媒体数据的传输性能.  SRT的码流加密基于开源库open ...

  7. VS2013+Opencv3.3配置教程

    转载自: https://blog.csdn.net/u014797226/article/details/78283873?locationNum=5&fps=1 参考博文1: 操作环境: ...

  8. 一个好用的多方隐私求交算法库JasonCeng/MultipartyPSI-Pro

    Github链接传送:JasonCeng/MultipartyPSI-Pro 大家好,我是阿创,这是我的第29篇原创文章. 今天是一篇纯技术性文章,希望对工程狮们有所帮助. 向大家推荐一个我最近改造的 ...

  9. 转载:Centos7 从零编译配置Memcached

    序言 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度. Memca ...

随机推荐

  1. div圆角和颜色渐变的设置

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. Hadoop数据传输工具:Sqoop

    Apache Sqoop(SQL-to-Hadoop) 项目旨在协助 RDBMS 与 Hadoop 之间进行高效的大数据交流.用户可以在 Sqoop 的帮助下,轻松地把关系型数据库的数据导入到 Had ...

  3. 转:java日志组件介绍(common-logging,log4j,slf4j,logback )

    原网址:http://www.blogjava.net/daiyongzhi/archive/2014/04/13/412364.html common-logging common-logging是 ...

  4. 轻量级开源内存数据库SQLite性能测试

    [IT168 专稿]SQLite是一款轻型的数据库,它占用资源非常的低,同时能够跟很多程序语言相结合,但是支持的SQL语句不会逊色于其他开源数据库.它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品 ...

  5. 【转】双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计

    架构简介 前几天网友来信说帮忙实现这样一个架构:只有两台机器,需要实现其中一台死机之后另一台能接管这台机器的服务,并且在两台机器正常服务时,两台机器都能用上.于是设计了如下的架构.此架构主要是由kee ...

  6. 51nod1039 x^3 mod p

    X*X*X mod P = A,其中P为质数.给出P和A,求<=P的所有X.   Input 第1行:一个数T,表示后面用作输入测试的数的数量.(1 <= T <= 1000) 第2 ...

  7. rabbitmq例子

    安装 sudo apt-get install rabbitmq-server 开启后台管理 sudo rabbitmq-plugins enable rabbitmq_management;sudo ...

  8. 【转】页面跳转Transfer与Redirect的区别你知道吗?

    一 前言 关于页面跳转的方式常用的应该就是,链接跳转,js跳转,Server.Tranfser和Response.Redirect 这几种,可是在Tranfser与Redirect之间用哪种更好(本文 ...

  9. NeHe OpenGL教程 第二十六课:反射

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  10. linux命令(10)使用kill杀死含有指定关键字的进程

    命令:ps -ef|grep keyword|grep -v grep|cut -c 9-15|xargs kill -9 批量杀死包含关键字“keyword”的进程. "ps -ef&qu ...