《学习OpenCV 3(中文版)》 —谁拥有OpenCV

举报
清华大学出版社 发表于 2019/10/23 20:38:54 2019/10/23
【摘要】 本节书摘来自清华大学出版社《学习OpenCV 3(中文版)》 一书中第一章,作者是[美]安德里安 • 凯勒 (Adrian Kaehler) 加里 • 布拉德斯基 (Gary Bradski) , 阿丘科技 刘昌祥 吴雨培 王成龙 崔玉芳 等译。

谁拥有OpenCV

尽管Gary Bradski在英特尔发起了OpenCV项目,但这个函数库的宗旨是促进商业和研究,这正是它的使命。因此,它是开源并且免费的,并且无论是研究还是商业目的代码都可以(全部或者部分的)使用或者被嵌入到其他程序中。它并不强制你声明基于此开发的代码必须是免费或者开源的,也不要求你将自己的改进反馈回OpenCV中,虽然我们希望可以。

下载和安装OpenCV

OpenCV官方网站(http://opencv.org/)可以下载最新的且完整的源码以及大部分的 release版本源码。下载链接可以通过下载页面(http://opencv.org/downloads.html)访问。当然,最新的代码会在githubhttps://github.com/opencv/opencv)上进行即时更新。如果想要获取最新的高级函数功能,也可以下载和编译opencv_contrib模块(https:// github.com/opencv/opencv_contrib)。

安装

现在,OpenCV使用Git作为版本管理工具,使用Cmake来构建工程。4当然,这些日子都一去不复返了。在许多情况下,你不必担心构建问题,因为许多环境中都有预编译好

spacer.gif

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 的安装指导进行。

spacer.gif

5 有一点很重要的事情是,尽管Windows环境拥有预编译的release版本的库,但是它并不包含 debug版本的库。所以,在开发OpenCV之前,需要打开解决方案并且自行编译那些库。

6 当然,具体路径会根据安装的不同而有所不同,比如说在32位机器上安装,那么该路径就该是x86而不是x64。

Linux系统由于GCCGLIBC在不同Linux版本(SuSEDebianUbuntu,等等)下拥有不同的版本,OpenCVLinux的预编译版本不包含linux的版本号。然而,在很多情况下,你的Linux版本会提供OpenCV。如果你的版本不提供OpenCV,你将不得不从源代码中构建,与Windows安装一样,可以从http://opencv.org/downloads.html下载源代码,但是在这种情况下,该链接会把你转向SourceForge,在这里可以为当前的OpenCV源代码选择压缩文件。

为了编译这个库和示例程序,需要GTK+2.x或者更高的版本,还需要gcc以及必要的开发包cmake以及libtbb(英特尔线程构建模块)以及一些可选项目诸如zliblibpnglibjpeglibtiff以及libjasper的开发者版本(例如模块名称后带有-dev的版本)。你也需要用到Python 2.6或者更高的版本(开发者包)以及NumPy使OpenCV可以在Python环境下工作。此外,还需要来自ffmpeglibavcodec以及其他的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的支持,等等。默认情况下,OpenCVcmake配置脚本会尝试查找和使用尽可能多的第三方库,例如如果它探测到CUDA SDK的存在,就会自动支持GPU加速的 OpenCV功能。最后两个指令将编译整个库并将其安装到正确的位置。注意,如果使用 CMake来建工程,就没有必要安装OpenCV,只需要指定生成的OpenCVConfig.cmake文件的路径就可以了。在前面的例子中,文件将被安装在/usr/local/share/OpenCV

正如Windows的例子所示,Linux建立的OpenCV将自动利用IPP进行加速(如果有安装的话)。从OpenCV 3.0版本开始,OpenCVcmake设置脚本将自动下载并且链接一个IPP 的免费子库(IPPICV)。如果想要禁用IPP加速,请在执行CMake的时候加上-D WITH_ IPP=OFF指令。

Mac系统Mac上安装步骤和Linux上的安装步骤十分接近,不同的是,Mac拥有自己的开发环境 Xcode,包含大部分在CMake过程中需要的东西。你不需要GTK+TBBlibjpeg,并且:

             在默认情况下,Cocoa会取代GTK+在默认情况下,QTKit会取代ffmpeg

             GDC会取代TBB以及OpenMP

安装步骤和Linux下安装一致。需要添加-G Xcode指令到CMake中来生成一个Xcode工程,从而可构建和debug工程。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200