预构建版本
在许多情况下,您可以找到满足您需求的 OpenCV 预构建版本。
OpenCV 核心团队的软件包
每个版本都会发布使用默认参数和最新编译器构建的适用于 Android、iOS 和 Windows 的包,它们不包含opencv_contrib模块。
- GitHub 版本:https://github.com/opencv/opencv/releases
- SourceForge.net: OpenCV - Browse Files at SourceForge.net
第三方软件包
其他组织和个人维护自己的 OpenCV 二进制发行版。例如:
- 常用 Linux 发行版中的系统软件包 (https://pkgs.org/search/?q=opencv)
- PyPI (Search results · PyPI)
- 康达 (Search :: Anaconda.org)
- 柯南 (https://github.com/conan-community/conan-opencv)
- vcpkg (https://github.com/microsoft/vcpkg/tree/master/ports/opencv)
- NuGet (NuGet Gallery | Packages matching opencv)
- 冲泡 (opencv — Homebrew Formulae)
- Maven (Maven Central Repository Search)
从源代码构建
现有的二进制包可能不适用于您的用例,那么您必须自己构建 OpenCV 的自定义版本。本部分简要概述了构建过程,请查看特定平台的教程以获取实际的构建说明。
OpenCV 使用 CMake 构建管理系统进行配置和构建,因此本节主要介绍使用 CMake 构建软件的一般过程。
步骤 0:先决条件
安装 C++ 编译器和生成工具。在 *NIX 平台上,它通常是 GCC/G++ 或 Clang 编译器和 Make 或 Ninja 构建工具。在 Windows 上,它可以是 Visual Studio IDE 或 MinGW-w64 编译器。Android NDK 中提供了适用于 Android 的原生工具链。XCode IDE 用于为 OSX 和 iOS 平台构建软件。
从官方网站或其他来源安装 CMake。
获取其他第三方依赖项:具有额外功能(如解码视频或显示 GUI 元素)的库;提供所选算法优化实现的库;用于文档生成和其他附加功能的工具。查看 OpenCV 配置选项参考,了解可用选项和相应的依赖项。
第 1 步:获取软件源
典型的软件项目由一个或多个代码存储库组成。OpenCV 有两个包含代码的存储库:opencv - 具有稳定且积极支持的算法的主存储库,以及包含实验性和非自由(专利)算法的 opencv_contrib;以及一个包含测试数据的存储库:opencv_extra。
您可以以存档的形式下载存储库的快照,也可以使用完整历史记录克隆存储库。
要下载快照存档:
- 转到 https://github.com/opencv/opencv/releases 并从任何版本下载“源代码”存档。
- (可选)转到 https://github.com/opencv/opencv_contrib/releases 并下载与 opencv 相同的版本的“源代码”存档
- (可选)转到 https://github.com/opencv/opencv_extra/releases 并下载与 opencv 相同版本的“源代码”存档
- 将所有存档解压缩到某个位置
要克隆存储库,请在控制台中运行以下命令(必须安装 git):
注意
如果要使用多个存储库构建软件,请确保所有组件彼此兼容。对于 OpenCV,这意味着 opencv 和 opencv_contrib 存储库必须在同一标记下签出,或者所有快照存档都从同一版本下载。
在选择要下载的版本时,请考虑您的目标平台和开发工具版本,最新版本的 OpenCV 可能会在非常旧的编译器中出现构建问题,反之亦然。我们建议使用最新版本和新的操作系统/编译器组合。
第 2 步:配置
在此步骤中,CMake 将验证所有必要的工具和依赖项是否可用且与库兼容,并将为所选生成系统生成中间文件。它可以是 Makefile、IDE 项目和解决方案等。通常,此步骤在新创建的构建目录中执行:
注意
cmake-gui
应用程序允许使用图形用户界面查看和修改可用选项。有关详细信息,请参阅 Resources。
第 3 步:构建
在构建过程中,源文件被编译为目标文件,这些文件链接在一起或以其他方式组合到库和应用程序中。可以使用通用命令运行此步骤:
...或者可以直接调用底层构建系统:
(可选)第 3 步:安装
在安装过程中,构建过程中,构建目录中的构建结果和其他文件将被复制到安装位置。默认安装位置在 UNIX 和 Windows 上。可以在配置步骤中通过设置选项更改此位置。若要执行安装,请运行以下命令:/usr/local
C:/Program Files
CMAKE_INSTALL_PREFIX
注意
此步骤是可选的,OpenCV 可以直接从构建目录使用。
如果安装根目录是受保护的系统目录,则必须使用超级用户或管理员权限(例如 )。sudo cmake ...
(可选)第 4 步:构建插件
通过将部分代码提取到动态加载的插件中,可以解耦一些 OpenCV 依赖项并使其成为可选的。它有助于生成自适应二进制发行版,这些发行版可以在依赖性较低的系统上运行,并且只需安装缺少的库即可扩展功能。目前,模块 core、videoio 和 highgui 的一些依赖项都支持这种机制。在某些情况下,可以通过设置诸如 或 之类的选项来与 OpenCV 一起构建插件,可以在 OpenCV 配置选项参考中找到与此场景相关的更多选项。在其他情况下,插件应该在它们自己的构建过程中单独构建,本节描述了这种独立的构建过程。VIDEOIO_PLUGIN_LIST
HIGHGUI_PLUGIN_LIST
注意
建议使用与 OpenCV 构建兼容的编译器、配置和构建选项,否则生成的库可能会拒绝加载或导致其他运行时问题。请注意,由于 OpenCV 和相应的第三方库之间存在额外的障碍,当动态加载后端时,某些功能可能会受到限制或工作速度变慢。
构建过程类似于主 OpenCV 构建,但您必须使用位于相应子目录中的特殊 CMake 项目,这些文件夹还可以包含引用脚本和 Docker 镜像。为插件使用名称前缀非常重要,以便加载器能够找到它们。每个受支持的前缀只能用于加载一个库,但是可以为单个前缀探测多个候选库。例如,您可以拥有 libopencv_videoio_ffmpeg_3.so 和 libopencv_videoio_ffmpeg_4.so 插件,第一个可以成功加载的插件将占用内部插槽并停止探测过程。下表列出了可能的前缀和项目位置:opencv_<module>_<backend>
模块 | 后端 | 位置 |
---|---|---|
核心 | parallel_tbb、parallel_onetbb parallel_openmp | opencv/模块/核心/杂项/插件 |
高桂 | GTK、GTK2、GTK3 | opencv/modules/highgui/misc/插件 |
视频IO | ffmpeg、gstreamer、intel_mfx、msmf | opencv/模块/videoio/misc |
例:
注意
在 Windows 上,插件必须与现有的 OpenCV 版本链接。将 environment 或 CMake 变量设置为包含 OpenCVConfig.cmake 文件的目录,它可以是 OpenCV 构建目录或您执行安装的位置中的某个路径。OpenCV_DIR
在线教程
- 麻省理工学院人工智能视频教程 – 麻省理工人工智能课程
- 人工智能入门 – 人工智能基础学习。Peter Norvig举办的课程
- EdX 人工智能 – 此课程讲授人工智能计算机系统设计的基本概念和技术。
- 人工智能中的计划 – 计划是人工智能系统的基础部分之一。在这个课程中,你将会学习到让机器人执行一系列动作所需要的基本算法。
- 机器人人工智能 – 这个课程将会教授你实现人工智能的基本方法,包括:概率推算,计划和搜索,本地化,跟踪和控制,全部都是围绕有关机器人设计。
- 机器学习 – 有指导和无指导情况下的基本机器学习算法
- 机器学习中的神经网络 – 智能神经网络上的算法和实践经验
- 斯坦福统计学习
有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓
人工智能书籍
- OpenCV(中文版).(布拉德斯基等)
- OpenCV+3计算机视觉++Python语言实现+第二版
- OpenCV3编程入门 毛星云编著
- 数字图像处理_第三版
- 人工智能:一种现代的方法
- 深度学习面试宝典
- 深度学习之PyTorch物体检测实战
- 吴恩达DeepLearning.ai中文版笔记
- 计算机视觉中的多视图几何
- PyTorch-官方推荐教程-英文版
- 《神经网络与深度学习》(邱锡鹏-20191121)
- …
第一阶段:零基础入门(3-6个月)
新手应首先通过少而精的学习,看到全景图,建立大局观。 通过完成小实验,建立信心,才能避免“从入门到放弃”的尴尬。因此,第一阶段只推荐4本最必要的书(而且这些书到了第二、三阶段也能继续用),入门以后,在后续学习中再“哪里不会补哪里”即可。
第二阶段:基础进阶(3-6个月)
熟读《机器学习算法的数学解析与Python实现》并动手实践后,你已经对机器学习有了基本的了解,不再是小白了。这时可以开始触类旁通,学习热门技术,加强实践水平。在深入学习的同时,也可以探索自己感兴趣的方向,为求职面试打好基础。
第三阶段:工作应用
这一阶段你已经不再需要引导,只需要一些推荐书目。如果你从入门时就确认了未来的工作方向,可以在第二阶段就提前阅读相关入门书籍(对应“商业落地五大方向”中的前两本),然后再“哪里不会补哪里”。
有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓