《学习OpenCV 3(中文版)》 —谁拥有OpenCV
谁拥有OpenCV
尽管Gary Bradski在英特尔发起了OpenCV项目,但这个函数库的宗旨是促进商业和研究,这正是它的使命。因此,它是开源并且免费的,并且无论是研究还是商业目的代码都可以(全部或者部分的)使用或者被嵌入到其他程序中。它并不强制你声明基于此开发的代码必须是免费或者开源的,也不要求你将自己的改进反馈回OpenCV中,虽然我们希望可以。
下载和安装OpenCV
在OpenCV官方网站(http://opencv.org/)可以下载最新的且完整的源码以及大部分的 release版本源码。下载链接可以通过下载页面(http://opencv.org/downloads.html)访问。当然,最新的代码会在github(https://github.com/opencv/opencv)上进行即时更新。如果想要获取最新的高级函数功能,也可以下载和编译opencv_contrib模块(https:// github.com/opencv/opencv_contrib)。
安装
现在,OpenCV使用Git作为版本管理工具,使用Cmake来构建工程。注4当然,这些日子都一去不复返了。在许多情况下,你不必担心构建问题,因为许多环境中都有预编译好
注4: 在早些时候,OpenCV开发者使用Subversion作为版本管理工具以及automake来构建工程项目。
的库。但是,一旦成为更加专业的使用者,势必需要重新编译库,并且根据具体的应用程序定制特定的选项。
Windows系统
在http://opencv.org/downloads.html,可以发现最新的为Windows准备的最新版本OpenCV 下载链接。可以通过这个链接下载一个EXE文件,该文件会把预编译好的OpenCV解压到你的电脑上,预编译版本支持不同版本的Visual Studio环境。现在,你很快就可以开始使用OpenCV了。注5
另一个额外的细节是,需要再添加一个名为OPENCV_DIR的环境变量来告诉编译器在哪里找到OpenCV的二进制文件。可以通过命令行工具对此进行设置。注6
setx -m OPENCV_DIR D:\OpenCV\Build\x64\vc10
如果希望静态链接OpenCV,就只需要做到这一步。如果希望使用OpenCV的动态链接库(DLL),就需要告诉系统在哪里找到它的二进制库。为了完成这一目标,只需要在库路径中添加%OPENCV_DIR%\bin。(比如说,在Windows 10中,右击计算机图标,选择 “属性”,然后单击“高级系统设置”,最后选择“环境变量”,把OpenCV二进制文件的路径添加到“系统变量”的path变量中。)
OpenCV3集成了IPP,所以如果使用最新的x86或者x64CPU,就可以获得或多或少的性能优势。
也可以按照如下操作从源码编译OpenCV。
1. 运行CMake GUI。
2. 指定OpenCV源码所在路径以及构建目标文件夹(必须和源码所在路径不同)。
3. 按两次Configure键(选择可以使用的Visual Studio编译器或者MinGW构建文件,如果正在使用MinGW的话),直到所有条目没有红色警示。
4. 使用Visual Studio打开生成的解决方案并构建。如果使用的是MinGW,则按照Linux 的安装指导进行。
注5: 有一点很重要的事情是,尽管Windows环境拥有预编译的release版本的库,但是它并不包含 debug版本的库。所以,在开发OpenCV之前,需要打开解决方案并且自行编译那些库。
注6: 当然,具体路径会根据安装的不同而有所不同,比如说在32位机器上安装,那么该路径就该是x86而不是x64。
Linux系统由于GCC和GLIBC在不同Linux版本(SuSE,Debian,Ubuntu,等等)下拥有不同的版本,OpenCV的Linux的预编译版本不包含linux的版本号。然而,在很多情况下,你的Linux版本会提供OpenCV。如果你的版本不提供OpenCV,你将不得不从源代码中构建,与Windows安装一样,可以从http://opencv.org/downloads.html下载源代码,但是在这种情况下,该链接会把你转向SourceForge,在这里可以为当前的OpenCV源代码选择压缩文件。
为了编译这个库和示例程序,需要GTK+2.x或者更高的版本,还需要gcc以及必要的开发包cmake以及libtbb(英特尔线程构建模块)以及一些可选项目诸如zlib,libpng, libjpeg,libtiff以及libjasper的开发者版本(例如模块名称后带有-dev的版本)。你也需要用到Python 2.6或者更高的版本(开发者包)以及NumPy使OpenCV可以在Python环境下工作。此外,还需要来自ffmpeg的libavcodec以及其他的libav*库(包含头文件)。
对于后者,请安装Linux发行版本所提供的的libav/ffmpeg包,或者前往http://www.ffmpeg. org下载。ffmpeg库拥有较低的通用公开(LGPL)许可证,但是它的一些组件拥有更严格的通用公开许可证(GPL)。为了结合使用非GPL的软件,你需要构建并且使用一个共享的ffmpeg库:
$> ./configure --enable-shared
$> make
$> sudo make install
当动态链接一个LGPL的库时,不需要为自己的代码使用GPL许可证。最终得到/usr/ local/lib/libavcodec.so.*,/usr/local/lib/libavformat.so.*,/usr/local/lib/libavutil.so.*以及在/usr/local/include/libav*路径下的头文件。
为了编译这个库,需要解压tar.gz文件并且切换到解压过程创建的源码文件夹中,然后进行如下操作:
mkdir release cd release cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. make
sudo make install # optional
第一个命令和第二个命令将创建名为release的子目录并且切换到release中,第三个命令告诉cmake工具如何设置你的工程。我们提供的例子可能是让你入门的正确方法,但是其他选项允许你启用更多的设置:确定哪些例子需要被构建;添加对Python的支持;添加CUDA GPU的支持,等等。默认情况下,OpenCV的cmake配置脚本会尝试查找和使用尽可能多的第三方库,例如如果它探测到CUDA SDK的存在,就会自动支持GPU加速的 OpenCV功能。最后两个指令将编译整个库并将其安装到正确的位置。注意,如果使用 CMake来建工程,就没有必要安装OpenCV,只需要指定生成的OpenCVConfig.cmake文件的路径就可以了。在前面的例子中,文件将被安装在/usr/local/share/OpenCV。
正如Windows的例子所示,Linux建立的OpenCV将自动利用IPP进行加速(如果有安装的话)。从OpenCV 3.0版本开始,OpenCV的cmake设置脚本将自动下载并且链接一个IPP 的免费子库(IPPICV)。如果想要禁用IPP加速,请在执行CMake的时候加上-D WITH_ IPP=OFF指令。
Mac系统在Mac上安装步骤和Linux上的安装步骤十分接近,不同的是,Mac拥有自己的开发环境 Xcode,包含大部分在CMake过程中需要的东西。你不需要GTK+、TBB,libjpeg,并且:
• 在默认情况下,Cocoa会取代GTK+; • 在默认情况下,QTKit会取代ffmpeg;
• GDC会取代TBB以及OpenMP。
安装步骤和Linux下安装一致。需要添加-G Xcode指令到CMake中来生成一个Xcode工程,从而可构建和debug工程。
- 点赞
- 收藏
- 关注作者
评论(0)