第一章之OpenCV安装

这篇具有很好参考价值的文章主要介绍了第一章之OpenCV安装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

opencv 安装

一、地址

opencv官网
opencv Github

官方安装流程
安装opencv,opencv,opencv

二、概述

opencv有两种安装方式:1、根据自己的平台选择官方编译好的版本;2、下载源码自己编译。

三、预编译版本

官方预编译版本满足大多数需求。预编译版本有两个途径:
1、OpenCV核心团队:

  • GitHub releases
  • SourceForget.net

2、第三方机构:

  • System packages in popular Linux distributions
  • PyPI
  • Conda
  • Conan
  • vcpkg
  • NuGet
  • Brew
  • Maven

四、从源码构建

如果现有的预编译版本不满足使用需求,可以下载源码自行构建编译。OpenCV使用CMake构建管理系统进行配置和构建。

Step 0:依赖

安装c++编译器(compiler)和构建工具(build tool)。
*NIX平台,通常使用GCC/C++或者Clang作为编译器,使用Make或者Ninja作为构建工具。
Windows平台,可以使用Visual Studio IDE或者MinGW-w64作为编译器。
Android平台,使用Android NDK里面的Native toolchains作为编译器。
IOS、OSX平台,使用XCode IDE。

从官方网站安装CMake。

获取其他第三方依赖:例如具有视频解码功能的库,GUI显示相关的库;对选择的算法提供优化功能的库;用于生成文档和其他额外功能的工具等。查看OpenCV配置选项参考,获取可用选项和相应的依赖库。

Step 1:获取源码

典型的软件项目由一个或多个代码仓库组成。OpenCV有三个代码仓库:opencv- 主库,包含稳定且积极支持的算法;opencv_contrib 包含实验和非免费(专利)算法;还有一个带测试数据的仓库:opecv_extra

这三个仓库有两种下载方式:
1、下载仓库的快照存档,但是上面三个仓库的名称跳转既是;
2、glone仓库的完成提交历史(后面可以自由切换版本):

git clone https://github.com/opencv/opencv
git -C opencv checkout <some-tag>
# optionally
git clone https://github.com/opencv/opencv_contrib
git -C opencv_contrib checkout <same-tag-as-opencv>
# optionally
git clone https://github.com/opencv/opencv_extra
git -C opencv_extra checkout <same-tag-as-opencv>

注: 1、opencv_contrib 模块和opencv_extra 模块都是可选项,自行根据需求安装下载;
2、如果下载这俩模块,需要确保彼此兼容性。一般情况下下载对应版本号即可。
3、考虑目标平台和开发工具的版本。最新的OpenCV可能在非常老的编译器上出现构建问题。

Step 2:配置

在这一步CMake将会验证所有的工具和依赖是否可用以及兼容性问题。同时根据选择的平台生成中间文件。比如:Makefiles、IDE 工程和解决方案。通常这一步会在一个新建的build文件夹中完成。
Note: 这一步还可以使用 cmake-gui 来可视化修改编译选项。

Step 3:构建

在构建过程中,源文件被编译成目标文件,这些目标文件被链接在一起或者组合成库和相应的程序,这个步骤通过一下命令完成:cmake --build <build-directory> <build-options> ,或者直接调用make

Step 4:安装(可选)

在安装过程中,将把生成目录中的生成结果和其他文件复制到安装位置。UNIX上默认的安装位置是 /usr/local ,Windows上默认安装位置是 C:/Program files 。这个位置可以在配置步骤中通过设置 CMAKE_INSTALL_PREFIX 选项来更改。安装命令:cmake --build <build-directory> --target install <other-options>
Note: 1、此步骤是可选的,不安装可以直接在build目录中使用;
2、若安装位置受系统保护,需要加上sudo权限: sudo cmake …

五、配置选项

5.1 概述

配置选项可以通过一下三种方式设置:

  • 命令行: cmake -Doption=value ...
  • 初始缓存文件: cmake -C my_options.txt ...
  • 交互式界面: cmake-gui
    个人推荐使用cmake-gui可视化配置,由于选项太多了,使用命令行或是修改配置文件,一是不直观,二是容易漏,三是太麻烦;使用cmake-gui对应的好处,一是可以直接搜索想要的配置选项;二是上面Step2提到的配置生成过程中产生的错误尤其是依赖错误,可以方便的看提示及修改;三是生成之后的配置信息可以很方便的预览,特别是某些模块是否启用,依赖库的信息等。当然最终每个人依据个人喜好以及使用场景选择。

OpenCV的大部分配置选项可以在顶层的cmake脚本中找到:opencv/CMakeLists.txt 。一些选项是和特定的模块对应的。
可以使用CMake工具打印所有的可用选项:

# initial configuration
cmake ../opencv
# print all options
cmake -L
# print all options with help message
cmake -LH
# print all options including advanced
cmake -LA

其中,比较重要的选项是以 WITH_, ENABLE_, BUILD_, OPENCV_ 为开头的。选项的默认值因平台和其他选项值而异。

5.2、通用选项

5.2.1 构建额外模块选项

这里的附件模块即Step1中提到的opencv_contrib仓库中的算法模块。编译选项可以指定其中的部分抑或是全部,参考OpenCV编码风格指南
example:

# build with all modules in opencv_contrib
cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ../opencv
# build with one of opencv_contrib modules
cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules/bgsegm ../opencv
# build with two custom modules (semicolon must be escaped in bash)
cmake -DOPENCV_EXTRA_MODULES_PATH=../my_mod1\;../my_mod2 ../opencv
5.2.2 构建Debug/Release选项

CMAKE_BUILD_TYPE 是一个可选项,用以指定生成的OpenCV库文件是debug版本抑或是release版本,区别在于debug会禁用许多编译器优化,也可以指定 CV_DISABLE_OPTIMIZATION 选项禁用优化功能,禁用优化的好处是方便断点调试。debug版本生成的二进制文件中包含调试符号。要在release版本中启用调试符号,需要开启BUILD_WITH_DEBUG_INFO 选项。

cmake -DCMAKE_BUILD_TYPE=Debug ../opencv
cmake --build .
5.2.3 构建静态库/动态库选项

BUILD_SHARED_LIBS 选择控制生成动态库 (.dll, .so, .dylib) 抑或是静态库(.a, .lib)。默认值取决于构建的目标平台,大多数情况下默认是ON(生成静态库)。

cmake -DBUILD_SHARED_LIBS=OFF ../opencv

ENABLE_PIC 设置CMAKE_POSITION_INDEPENDENT_CODE 选项。这是一个CMake的功能,启用或禁用 位置无关代码(PIC) 的生成。构建动态库或打算把静态库链接到动态库的时候,必须启用此选项。默认为ON。

5.2.4 构建 pkg-config 选项

OPENCV_GENERATE_PKGCONFIG 选项可以生成.pc 文件。至于什么是.pc(package configure 包/库配置文件)文件,比如gtk-2.0的pc文件内容如下:

prefix=/usr
exec_prefix=/usr
libdir=/usr/lib
includedir=/usr/include
target=x11
gtk_binary_version=2.4.0
gtk_host=i386-redhat-linux-gnu
Name: GTK+
Description: GIMP Tool Kit (targettarget)Version:2.6.7Requires:gdk−{target}-2.0 atk
Libs: -Llibdir−lgtk−{target}-2.0
Cflags: -I${includedir}/gtk-2.0

可以看到.pc文件中包含了一个库的头文件、库文件所在的路径信息。GCC等编译某个工程用到这个依赖库的时候,这样用 gcc -c pkg-config –cflags gtk-2.0 sample.c 就可以方便的添加依赖信息。使用 pkg-config 的 –cflags 参数可以给出在编译时所需要的选项,而 –libs 参数可以给出连接时的选项。gcc sample.o -o sample pkg-config –libs gtk-2.0
但是,由于配置过程的复杂性,生成的.pc文件可能包含不完整的第三方依赖项列表,并且可能在某些配置中不起作用,尤其是构建的静态库中。此功能自OpenCV 4.x版本以后不再正式支持,默认禁用。

5.2.5 构建tests,samples and applications

有两种类型的tests:准确性accuracy (opencv_test_) and 性能performance (opencv_perf_)。默认情况下启用tests和applications,examples需要手动启用。
相应的CMake选项:

cmake \
  -DBUILD_TESTS=ON \
  -DBUILD_PERF_TESTS=ON \
  -DBUILD_EXAMPLES=ON \
  -DBUILD_opencv_apps=ON \
  ../opencv
5.2.6 构建部分模块

每一个模块都是modules目录下的一个子文件夹。每个模块都有单独的使能选项,可以禁用某个模块不参与构建:cmake -DBUILD_opencv_calib3d=OFF ../opencv ,也可以只构建指定的模块和它们的依赖项:cmake -DBUILD_LIST=calib3d,videoio,ts ../opencv ,这里我们指定了三个模块,但是配置脚本会自动确定所需要的其他依赖项。

– OpenCV modules:
– To be built: calib3d core features2d flann highgui imgcodecs imgproc ts videoio

5.2.7 下载依赖项

配置脚本可以尝试从网络上下载附加的库和文件,如果失败,相应的功能会被关闭。默认情况下,所有的文件被下载到<source>/.cache 目录,然后解压或复制到构建目录。也可以通过设置环境变量或者配置选择来更改下载缓存的位置:

export OPENCV_DOWNLOAD_PATH=/tmp/opencv-cache
cmake ../opencv
# or
cmake -DOPENCV_DOWNLOAD_PATH=/tmp/opencv-cache ../opencv

下载过程的日志会被保存在构建目录的CMakeDownloadLog.txt中。对于下载失败文件,会在构建目录中的帮助脚本中添加一个命令,例如download_with_wget.sh,你可以运行这些脚本,也可修改。
注:个人经验,这些第三方依赖往往难以在配置脚本中自行下载,有一个好办法,在OpenCV 官方GitHub中找到这些第三方依赖仓库(在该仓库不同的分支下,手动下拉选择即可),手动下载,并放到相应的位置,配置脚本就不会再重新下载了,此时可以正常往下执行

5.2.8 CPU级别的优化

在x86_64的机器上,OpenCV默认会针对SSE3指令集进行编译,可以通过以下选项进行修改:

cmake -DCPU_DISPATCH=AVX,AVX2 ../opencv

Note:其他平台有自己的指令集:例如ARM上的VFPVNEON,PowerPC上的VSCX

一些函数支持dispathch机制,通过编译多个指令集并在运行时选择其中一个,编译多个指令集列表选项:cmake -DCPU_DISPATCH=AVX,AVX2 ../opencv
要禁用dispatch机制,此选项设置为空即可:cmake -DCPU_DISPATCH= ../opencv

可以使用以下选项禁用部分代码的优化,以便进行debug:

# disable universal intrinsics
cmake -DCV_ENABLE_INTRINSICS=OFF ../opencv
# disable all possible built-in optimizations
cmake -DCV_DISABLE_OPTIMIZATION=ON ../opencv

Note:更多关于CPU优化选项的细节,可以查看CPU优化选项

5.2.9 Profiling, coverage, sanitize, hardening, size optimization

以下选项可用于生产带有检测或改进安全性的特殊构建,默认都被禁用。文章来源地址https://www.toymoban.com/news/detail-607337.html

选项 编译器 说明
ENABLE_PROFILING GCC or Clang Enable profiling compiler and linker options
ENABLE_COVERAGE GCC or Clang Enable code coverage support.
OPENCV_ENABLE_MEMORY_SANITIZER N/A Enable several quirks in code to assist memory sanitizer.
ENABLE_BUILD_HARDENING GCC, Clang, MSVC Enable compiler options which reduce possibility of code exploitation.
ENABLE_LTO GCC, Clang, MSVC Enable Link Time Optimization (LTO)
ENABLE_THIN_LTO Clang Enable thin LTO which incorporates intermediate bitcode to binaries allowing consumers optimize their applications later.

到了这里,关于第一章之OpenCV安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【RabbitMQ教程】第一章 —— RabbitMQ - 安装

                                                                       💧 【 R a b b i t M Q 教程】第一章—— R a b b i t M Q − 安装 color{#FF1493}{【RabbitMQ教程】第一章 —— RabbitMQ - 安装} 【 R abbi tMQ 教程】第一章 —— R abbi tMQ − 安装 💧       

    2024年02月09日
    浏览(46)
  • Python自学指南-第一章-安装运行

    “工欲善其事,必先利其器”,为了自学之路的顺利顺利进行。首先需要搭建项目的开发环境。 进入 Python 官网,目前 Python 最新 Python 稳定版为 3.11,点击如下链接 直接跳到最后,根据你电脑系统以及的位数 Win64位: 选择 Windows installer (64-bit) Win32位: 选择 Windows installer (3

    2024年02月08日
    浏览(39)
  • 第一章 docker安装ElasticSearch7

    1.1 设置jvm线程数限制 1.2 创建挂载目录 为了防止容器删掉数据丢失,需要进行数据文件挂载 /home/es/config目录下创建配置文件 elasticsearch.yml  注意:配置冒号后面都有一个空格 单机配置文件内容: 集群方式其他节点/home/es/config目录下创建配置文件 elasticsearch.yml 1.3 创建ES容器

    2023年04月08日
    浏览(41)
  • (1) Q#学习笔记 - 第一章 QDK安装

    2020/11/2,开始学习Q#。 第1章 QDK的安装 第1节 简介 QDK是Microsoft Quantum 开发工具包,可以进行量子编程,主要包含: Q# 编程语言 在 Q# 中对复杂功能进行抽象化的一组库 适用于 Python 和 .NET 语言(C#、F# 和 VB.NET)的 API,用于运行以 Q# 编写的量子程序 用于促进开发的工具 本文主

    2024年02月04日
    浏览(42)
  • 第一章 Linux系统服务:Apache安装及配置应用

    1.1http与html 1.2浏览器访问网站的过程 1.3HTTP工作机制 1.4版本 1.5HTTP方法 1.6.http状态码 1.7请求报文 1.8 响应报文 1.Apache基础知识 2.Apache配置文件位置 1.LAMP平台概述 2.LAMP各组件主要作用 3.构建LAMP平台顺序 1. prefork模式(默认模式) 2. worker模式 3. event模式 1.1http与html HTTP:为解决

    2024年02月02日
    浏览(43)
  • HarmonyOS应用开发-第一章-DevEco Studio的安装

            本栏可以帮助正在学习HarmonyOS应用开发的开发者快速上手和掌握。         首先下载DevEco Studio(HarmonyOS应用的集成开发境),点击:IDE下载页面,点击立即下载。         下载完成后,双击运行安装程序,进入安装向导。         随后一直点击 \\\"Next\\\" 直到安装完成

    2024年02月17日
    浏览(47)
  • 第一次用用Opencv进行图像处理

    2023.7.06更新 直接放参考链接,完成安装该步骤来,简单高效! 安装教程链接 有一个问题就是第一次安装完成后运行时会报确实某些ddl的错误,关机重启就好啦! ddl的错误解决后可以用以下代码进行测试,测试通过后基本就ok啦,记得改一下图片的地址。 错误2 找不到某个

    2024年02月16日
    浏览(47)
  • 【OpenCV入门】第一部分——图像处理基础

    图像处理包括4个基本操作: 读取图像 、 显示图像 、 保存图像 和 获取图像属性 。 imread() filename :目标图像的完整路径名。 flags :图像的颜色类型的标记,有0和1两个值,其中1为默认值。当读取一幅彩色图像时,如果想要得到一幅 彩色图像 ,那么flags的值为1(此时flags的

    2024年02月11日
    浏览(43)
  • 第一章 初识Linux(含VMware安装Ubuntu、CentOS、Windows、FinalShell、快照)

      说明:该文章是学习黑马程序员在B站上分享的视频 黑马程序员新版Linux零基础快速入门到精通 而记录的笔记,笔记来源于本人,若有其他参考,会在文章对应内容注明来源。 若有侵权,请联系本人删除 。笔记难免可能出现错误或笔误,若读者发现笔记有错误,欢迎在评

    2024年02月11日
    浏览(38)
  • 【云原生进阶之PaaS中间件】第一章Redis-1.5.1安装配置

            在本节中,您将了解和学习Redis的环境安装设置。         要在Ubuntu上安装Redis,打开终端并键入以下命令 -         这将在Ubuntu机器上安装Redis。 1.2.1 安装步骤 1、首先使用 sudo brew install redis 命令一键安装Redis, 默认会安装在 /usr/local/bin 路径中。 2、cd 进

    2024年02月09日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包