第一章之OpenCV安装

article/2025/10/9 12:06:40

opencv 安装

一、地址

opencv官网
opencv Github

官方安装流程
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

以下选项可用于生产带有检测或改进安全性的特殊构建,默认都被禁用。

选项编译器说明
ENABLE_PROFILINGGCC or ClangEnable profiling compiler and linker options
ENABLE_COVERAGEGCC or ClangEnable code coverage support.
OPENCV_ENABLE_MEMORY_SANITIZERN/AEnable several quirks in code to assist memory sanitizer.
ENABLE_BUILD_HARDENINGGCC, Clang, MSVCEnable compiler options which reduce possibility of code exploitation.
ENABLE_LTOGCC, Clang, MSVCEnable Link Time Optimization (LTO)
ENABLE_THIN_LTOClangEnable thin LTO which incorporates intermediate bitcode to binaries allowing consumers optimize their applications later.

http://chatgpt.dhexx.cn/article/7iv6g5ep.shtml

相关文章

opencv安装教程(详细)小白教程

opencv安装教程&#xff08;详细&#xff09;小白教程 我们以OpenCv的最新版本为3.1.0版本为例介绍其配置方法。 opencv安装教程&#xff08;详细&#xff09;小白教程一、OpenCv的官方下载地址二、下载步骤1.点击libarary下拉框的release2.选择你想要的版本和系统&#xff08;…

opencv怎么安装?opencv下载安装教程

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库&#xff0c;可以运行在Linux、Windows、Android和Mac OS操作系统上。下面就介绍OpenCV的下载和安装方法。 opencv怎么安装&#xff1f; 软件准备 步骤1&#xff1a;在官网上下载OpenCV的安装包&#xff0c;由于服务器…

OpenCV安装教程(全网最细,小白直接上手!!!)

OpenCV是Python、Ruby、MATLAB的接口&#xff0c;OpenCV在计算机视觉的发展中发挥了重要的作用&#xff0c;使成千上万的人能够在视觉上做更多的工作。由于在VSLAM技术研究过程中&#xff0c;经常会涉及OpenCV不同版本在ubuntu系统下的安装。文章简单总结了一下两个版本的OpenC…

python下opencv安装

1、查看python版本 cmd输入命令行,python。 2、根据对应python版本&#xff0c;去https://www.lfd.uci.edu/~gohlke/pythonlibs/&#xff0c;下载对应版本的opencv。 我的python版本是3.8&#xff0c;64位&#xff0c;所以下载一下标红的链接。 3、下载 pip install wheel 4、…

OpenCV概述及安装配置教程

目录 一、OpenCV介绍及各个版本的区别1.1 OpenCV介绍1.2 OpenCV主要模块介绍1.3 python下OpenCV的配置 二、OpenCV的安装步骤2.1 下载OpenCV2.2 安装OpenCV2.3 配置环境变量 三、Visual Studio下配置OpenCV3.1 安装Visual Studio3.2 打开Visual Studio&#xff0c;新建一个解决…

pycharm+opencv安装总结

pycharm的安装与环境配置 1、安装 pycharm的安装很简单&#xff0c;在官网上下载之后按照步骤一步一步来安装&#xff0c;没什么难度。有个页面需要勾选的全勾上 pycharm安装地址&#xff1a; PyCharm: the Python IDE for Professional Developers by JetBrainshttps://www…

OpenCV安装配置教程VS2022(超级顺利)

前言 博主最开始没打算写这篇博客&#xff0c;只是想简单的在网上找一下最新版的OpenCV的安装配置教程&#xff0c;适用于VS2022的&#xff0c;但是我搜了一早上&#xff0c;也没搜到一个能让我成功安装配置的&#xff0c;看了很多很多文章&#xff0c;根本就没有几篇有用的。…

mnist数据集下载——mnist数据集提供百度网盘下载地址

mnist数据集是由深度学习大神 LeCun等人制作完成的数据集&#xff0c;mnist数据集也常认为是深度学习的“ Hello World&#xff01;”。 官网&#xff1a;http://yann.lecun.com/exdb/mnist/ mnist数据集由6万张训练数据和1万张测试数据组成。 官网提供下载&#xff0c;但由于…

MNIST数据集下载资源

MNIST数据集下载资源 提供MNIST数据集&#xff0c;并且教程MNIST放置文件夹路径为何~ MNIST数据集提供下载 MNIST数据集&#xff0c;提取码&#xff1a;egt7 MNIST下载后放置路径 Windows下需要放置在对应User下的.keras/dataset/目录下&#xff0c;Linux类似。

python中Keras下载mnist数据集

python中Keras下载mnist数据集 方法一&#xff1a; 直接写代码进行加载数据集&#xff0c;如果没有下载数据集&#xff0c;它会自动进行下载。示例&#xff1a; from keras.datasets import mnist (X_train, y_train), (X_test, y_test) mnist.load_data()等待下载完成即可…

mnist数据集python导入_Python读取MNIST数据集

和图像文件类似: 第1-4个byte存的是文件的magic number,对应的十进制大小是2049; 第5-8个byte存的是number of items,即label数量60000; 从第9个byte开始,每个byte存一个图片的label信息,即数字0-9中的一个。 计算一下训练集标签文件train-labels-idx1-ubyte的文件大小…

python调用数据集mnist_使用MNIST数据集进行分类

本文是对书《机器学习实战:基于Scikit-Learn和Tensorflow》第三章的知识学习以及代码复现,欢迎大家一起学习一起进步。 获取数据集 提前将MNIST数据集下载好,并放在’\scikit_learn_data’目录之下from sklearn.datasets import fetch_mldata mnist = fetch_mldata(MNIST or…

关于mnist数据集下载的相关问题

文章目录 问题描述&#xff1a;在Tensorflow 2.0.1版本中下载mnist数据集原因分析&#xff1a;解决方案&#xff1a; 问题描述&#xff1a;在Tensorflow 2.0.1版本中下载mnist数据集 from tensorflow.examples.tutorials.mnist import input_data mnist input_data.read_data…

mnist数据集无法下载

机器学习mnist数据集无法下载 最近在学习机器学习的过程中需要使用mnist数据集&#xff0c;但是貌似是TensorFlow更新&#xff0c;导致网上的安装教程无法使用(个人观点)&#xff0c;也许是因为安装的TensorFlow版本问题 问题1&#xff1a;由于连接方在一段时间后没有正确答复…

MNIST数据集下载 —— 数据集提供百度网盘下载地址

MNIST数据集是机器学习领域中非常经典的一个数据集&#xff0c;由60000个训练样本和10000个测试样本组成&#xff0c;每个样本都是一张28 * 28像素的灰度手写数字图片。 1. 点击进入&#x1f449;MNIST数据集官网 2. 点击进入&#x1f449;百度网盘地址 3. 点击进入&#x1f…

Python 手写数字识别 MNIST数据集下载失败

目录 一、MNIST数据集下载失败 1 失败的解决办法&#xff08;经验教训&#xff09;&#xff1a; 2 亲测有效的解决方法&#xff1a; 一、MNIST数据集下载失败 场景复现&#xff1a;想要pytorchMINIST数据集来实现手写数字识别&#xff0c;首先就是进行MNIST数据集的下载&am…

动手学习深度学习花书踩坑01-----FashionMNIST数据集下载失败

在网上看了很多方法&#xff0c;一下让改 mnist.py 里的URL路径&#xff0c;一下让指定本地文件路径的&#xff0c;都没成功&#xff0c;可能是我把文件位置放错了&#xff0c;最后用自己的方法&#xff0c;巧妙地解决了。 1 先执行一遍书中原本的代码&#xff0c;这时候下载会…

MNIST数据集下载及可视化

MNIST数据集介绍 MNIST数据集官网&#xff1a;http://yann.lecun.com/exdb/mnist/ MNIST数据库是非常经典的一个数据集&#xff0c;就像你学编程起初写一个“Hello Word”的程序一样&#xff0c;学Deep Learning你就会写识别MNIST数据集的Model。 MNIST数据集是由0〜9手写数…

mnist数据集下载地址

链接&#xff1a;https://pan.baidu.com/s/1JVzVOx9vxAn_tBeXsbAf_g 密码&#xff1a;locq MNIST数据集介绍 MNIST数据集官网&#xff1a;http://yann.lecun.com/exdb/mnist/ MNIST数据库是非常经典的一个数据集&#xff0c;就像你学编程起初写一个“Hello Word”的程序一样&…

MNIST 数据集下载及图片可视化

MNIST 数据集下载及可视化 MNIST 介绍下载数据集并保存成图片 MNIST 数据集下载及可视化 最近用到了 MNIST 训练神经网络&#xff0c;但是下载下来的数据集默认是 *-ubyte.gz 的压缩包。 无法直观的看到数据本身的图片是什么样子&#xff0c;训练的神经网络达到99% 的正确率还…