OpenCV 4.12.0
开源计算机视觉
加载中...
搜索中...
无匹配项
Windows 中的安装

上一个教程: 在 Eclipse (CDT 插件) 中使用 OpenCV
下一个教程: 如何在“Microsoft Visual Studio”中用 OpenCV 构建应用程序

原始作者Bernát Gábor
兼容性OpenCV >= 3.0
警告
本教程可能包含过时的信息。

此处描述的内容已在 Windows 7 SP1 上进行测试。然而,它也应该适用于任何其他相对现代的 Windows 操作系统版本。如果您在按照以下步骤操作后遇到错误,请随时通过我们的 OpenCV 问答论坛与我们联系。我们将尽力帮助您。

注意
要使用 OpenCV 库,您有两种选择:使用预编译库进行安装从源代码构建自己的库进行安装。虽然第一种方法更容易完成,但它仅适用于您使用最新的 Microsoft Visual Studio IDE 编程,并且不利用我们库中集成的最先进技术的情况。 .. _Windows_Install_Prebuild

使用预编译库进行安装

  1. 打开您选择的网页浏览器,访问我们在 Sourceforge 上的页面
  2. 选择您要使用的版本并下载。
  3. 确保您具有管理员权限。解压自解压归档文件。
  4. 您可以在所选路径检查安装情况,如下所示。
  1. 要完成安装,请转到 设置 OpenCV 环境变量并将其添加到系统路径 部分。

使用 git-bash (版本>=2.14.1) 和 cmake (版本 >=3.9.1) 进行安装

  1. 您必须下载并安装 cmake (版本 >=3.9.1)。安装过程中必须将 cmake 添加到 PATH 变量中
  2. 您必须安装 git-bash (版本>=2.14.1)。安装过程中不要将 git 添加到 PATH 变量中
  3. 运行 git-bash。您会看到一个命令行窗口。假设您想在 c:/lib 中构建 opencv 和 opencv_contrib
  4. 在 git 命令行中输入以下命令(如果文件夹不存在)
    mkdir /c/lib
    cd /c/lib
  5. 将此脚本保存为 installOCV.sh 在 c:/lib
    #!/bin/bash -e
    myRepo=$(pwd)
    CMAKE_GENERATOR_OPTIONS=-G"Visual Studio 16 2019"
    #CMAKE_GENERATOR_OPTIONS=-G"Visual Studio 15 2017 Win64"
    #CMAKE_GENERATOR_OPTIONS=(-G"Visual Studio 16 2019" -A x64) # CMake 3.14+ 需要
    if [ ! -d "$myRepo/opencv" ]; then
    echo "克隆 opencv"
    git clone https://github.com/opencv/opencv.git
    else
    cd opencv
    git pull --rebase
    cd ..
    fi
    if [ ! -d "$myRepo/opencv_contrib" ]; then
    echo "克隆 opencv_contrib"
    git clone https://github.com/opencv/opencv_contrib.git
    else
    cd opencv_contrib
    git pull --rebase
    cd ..
    fi
    RepoSource=opencv
    mkdir -p build_opencv
    pushd build_opencv
    CMAKE_OPTIONS=(-DBUILD_PERF_TESTS:BOOL=OFF -DBUILD_TESTS:BOOL=OFF -DBUILD_DOCS:BOOL=OFF -DWITH_CUDA:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF -DINSTALL_CREATE_DISTRIB=ON)
    set -x
    cmake "${CMAKE_GENERATOR_OPTIONS[@]}" "${CMAKE_OPTIONS[@]}" -DOPENCV_EXTRA_MODULES_PATH="$myRepo"/opencv_contrib/modules -DCMAKE_INSTALL_PREFIX="$myRepo/install/$RepoSource" "$myRepo/$RepoSource"
    echo "************************* $Source_DIR -->debug"
    cmake --build . --config debug
    echo "************************* $Source_DIR -->release"
    cmake --build . --config release
    cmake --build . --target install --config release
    cmake --build . --target install --config debug
    popd
    在此脚本中,我假设您在 64 位中使用 VS 2015
    CMAKE_GENERATOR_OPTIONS=-G"Visual Studio 14 2015 Win64"
    opencv 将安装在 c:/lib/install/opencv
    -DCMAKE_INSTALL_PREFIX="$myRepo/install/$RepoSource"
    没有性能测试,没有测试,没有文档,没有 CUDA,也没有示例
    CMAKE_OPTIONS=(-DBUILD_PERF_TESTS:BOOL=OFF -DBUILD_TESTS:BOOL=OFF -DBUILD_DOCS:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF)
  6. 在 git 命令行中输入以下命令
    ./installOCV.sh
  7. 喝杯咖啡或两杯……opencv 已就绪:就是这样!
  8. 下次您运行此脚本时,opencv 和 opencv_contrib 将会被更新和重新构建。

从源代码构建自己的库进行安装

您也可以在以下 YouTube 视频中找到本教程的内容:第一部分第二部分

警告

上述视频已过时,包含不准确的信息。请注意,这些视频中描述的解决方案已不再受支持,甚至可能导致您的安装损坏。

如果您要构建自己的库,可以从我们的 Git 仓库获取源文件。

从头开始构建 OpenCV 库需要预先安装一些工具

  • 选择一个 IDE(首选),或者只选择一个实际生成二进制文件的 C/C++ 编译器。这里我们将使用 Microsoft Visual Studio。然而,您可以使用任何其他具有有效 C/C++ 编译器的 IDE。
  • CMake 是一个很棒的工具,可以从 OpenCV 源文件生成项目文件(用于您选择的 IDE)。它还可以轻松配置 OpenCV 构建文件,以生成完全符合您需求的二进制文件。
  • Git 用于获取 OpenCV 源文件。一个很好的工具是 TortoiseGit。或者,您可以直接从我们在 Sourceforge 上的页面下载源文件的归档版本

OpenCV 可能有多种形式。有一个“核心”部分可以独立工作。然而,也有一些由第三方制作的工具和库,它们提供 OpenCV 可以利用的服务。这些服务将以多种方式增强其功能。要使用其中任何一个,您需要将它们下载并安装到您的系统上。

  • 构建 OpenCV 的 Python 接口 需要 Python 库。目前请使用 2.7.{x} 版本。如果您想构建 OpenCV 文档,这也是必需的。
  • Numpy 是用于 Python 的科学计算包。Python 接口 所需。
  • Intel Threading Building Blocks (TBB) 在 OpenCV 内部用于并行代码片段。使用它将确保 OpenCV 库能够利用系统 CPU 中的所有核心。
  • Intel Integrated Performance Primitives (IPP) 可用于提高 OpenCV 库中颜色转换、Haar 训练和 DFT 函数的性能。请注意,这不是一项免费服务。
  • OpenCV 通过使用 Qt 框架提供了比默认界面更精美、更有用的图形用户界面。要快速了解其功能,请查阅文档的 highgui 模块中 Qt 新功能 部分。需要 4.6 或更高版本的框架。
  • Eigen 是一个用于线性代数的 C++ 模板库。
  • 最新的 CUDA Toolkit 将使您能够利用 GPU 的强大功能。这将大大提高某些算法的性能(例如 HOG 描述符)。让越来越多的算法在 GPU 上运行是 OpenCV 团队的持续努力。
  • 要使库与这种高动态范围(HDR)图像文件格式配合使用,需要 OpenEXR 源文件。
  • OpenNI 框架包含一套开源 API,通过语音命令识别、手势和身体运动跟踪等方法,支持与设备进行自然交互。预编译的二进制文件可以在 这里找到。OpenNI 和 OpenNI 以及 OpenNI2 的源代码也可以在 Github 上找到。
  • Doxygen 是一个文档生成器,也是实际创建 OpenCV 文档的工具。

现在我们将描述进行完整构建(使用所有上述框架、工具和库)的步骤。如果您不需要其中某些框架的支持,可以随意跳过此部分。

构建库

  1. 确保您有一个带有有效编译器的可工作 IDE。对于 Microsoft Visual Studio,只需安装它并确保它能启动。
  2. 安装 CMake。只需按照向导操作,无需将其添加到路径中。默认安装选项即可。
  3. 从其 官方网站下载并安装最新版本的 msysgit。还有便携版,您只需解压即可访问 Git 的控制台版本。假设对我们中的一些人来说,这已经足够了。
  4. 安装 TortoiseGit。根据您所用操作系统的类型选择 32 位或 64 位版本。安装时,找到您的 msysgit(如果它没有自动找到)。按照向导操作 – 大部分默认选项即可。
  5. 在文件系统中选择一个目录,您将把 OpenCV 库下载到其中。我建议创建一个新目录,路径短且不包含特殊字符,例如 D:/OpenCV。对于本教程,我建议您这样做。如果您使用自己的路径并知道自己在做什么——那也没关系。
    1. 将仓库克隆到选定的目录。点击 Clone 按钮后,会出现一个窗口,您可以在其中选择要从哪个仓库下载源文件(https://github.com/opencv/opencv.git)以及下载到哪个目录(D:/OpenCV)。
    2. 点击“确定”按钮并耐心等待,因为这个仓库下载量很大。它会花费一些时间,具体取决于您的互联网连接。
  6. 在本节中,我将介绍如何安装第三方库。
    1. 下载 Python 库并使用默认选项安装。您还需要其他几个 python 扩展。幸运的是,安装这些可以通过一个名为 Setuptools 的好工具自动化。再次下载并安装。
    2. 安装 Numpy 最简单的方法就是从 sourceforge 页面下载其二进制文件。确保您下载并安装了与您的 Python 版本完全匹配的二进制文件(例如 2.7 版本)。
    3. 对于 Intel Threading Building Blocks (TBB),下载源文件并将其解压到系统中的一个目录。例如,可以放在 D:/OpenCV/dep。对于安装 Intel Integrated Performance Primitives (IPP),情况也类似。对于解压归档文件,我建议使用 7-Zip 应用程序。
  1. 对于 Eigen 库,同样需要下载并解压到 D:/OpenCV/dep 目录。
  2. OpenEXR 相同。
  3. 对于 OpenNI 框架,您需要同时安装 开发版本PrimeSensor 模块
  4. 对于 CUDA,您同样需要两个模块:最新的 CUDA ToolkitCUDA Tools SDK。根据您的操作系统,使用 32 位或 64 位安装程序,以完整选项下载并安装它们。
  5. 如果是 Qt 框架,您需要自己构建二进制文件(除非您使用 Microsoft Visual Studio 2008 和 32 位编译器)。要做到这一点,请访问 Qt 下载页面。下载源文件(不是安装程序!!!)

将其解压到一个名称简短且易记的目录,例如 D:/OpenCV/dep/qt/。然后您需要构建它。通过使用开始菜单搜索(或导航至“开始”菜单 -> “所有程序” -> “Microsoft Visual Studio 2010” -> “Visual Studio Tools” -> “Visual Studio 命令提示符 (2010)”)启动一个 Visual Studio 命令提示符 (2010)。

现在,使用此控制台窗口导航到已解压的文件夹并进入其中。您应该有一个包含“Install”、“Make”等文件的文件夹。使用“dir”命令列出当前目录中的文件。到达此目录后,输入以下命令

configure.exe -release -no-webkit -no-phonon -no-phonon-backend -no-script -no-scripttools
-no-qt3support -no-multimedia -no-ltcg

完成此操作大约需要 10-20 分钟。然后输入下一个命令,这将花费更长的时间(甚至可能超过一小时)

nmake

之后,在 Windows 7 上使用以下命令设置 Qt 环境变量

setx -m QTDIR D:/OpenCV/dep/qt/qt-everywhere-opensource-src-4.7.3

此外,使用 PathEditor 将构建的二进制文件路径添加到系统路径中。在本例中,它是 D:/OpenCV/dep/qt/qt-everywhere-opensource-src-4.7.3/bin

注意
如果您计划进行 Qt 应用程序开发,此时您也可以安装 Qt Visual Studio Add-in。之后,您无需使用 Qt Creator 即可创建和构建 Qt 应用程序。一切都很好地集成到 Visual Studio 中。
  1. 现在启动 CMake (cmake-gui)。您可以再次在开始菜单搜索中输入它,或者从“所有程序” -> “CMake 2.8” -> “CMake (cmake-gui)”中找到它。首先,选择 OpenCV 库源文件的目录 (1)。然后,指定一个目录,您将在其中构建 OpenCV 的二进制文件 (2)。

按下配置按钮,指定您要使用的编译器(和 IDE)。请注意,您可以选择不同的编译器来生成 64 位或 32 位库。选择您在应用程序开发中使用的那个。

CMake 将启动,并根据您的系统变量尝试自动定位尽可能多的包。您可以在 WITH -> WITH_X 菜单项中修改要用于构建的包(其中 X 是包的缩写)。以下是您可以打开或关闭的当前包列表

选择所有您想使用的包,然后再次按下 Configure 按钮。为了更轻松地概览构建选项,请确保二进制目录选择下方的 Grouped 选项已打开。对于某些包,CMake 可能找不到所有必需的文件或目录。在这种情况下,CMake 将在其输出窗口(位于 GUI 底部)中抛出错误,并将其字段值设置为未找到的常量。例如

对于这些,您需要手动设置查询到的目录或文件路径。之后再次按下 Configure 按钮,查看您输入的值是否被接受。重复此操作,直到所有条目都正确,并且在字段/值或 GUI 的输出部分看不到错误。现在我想强调一个您一定会喜欢的选项:ENABLE -> ENABLE_SOLUTION_FOLDERS。OpenCV 将创建许多项目,打开此选项将确保它们在 Solution Explorer 中按目录分类。如果您问我,这是一个必备功能。

此外,您需要选择要构建的 OpenCV 的哪些部分。

  • BUILD_DOCS -> 它创建两个项目来构建 OpenCV 的文档(将有一个单独的项目用于构建 HTML 和 PDF 文件)。请注意,这些项目不与解决方案一起构建。您需要对它们发出显式构建项目命令才能完成此操作。
  • BUILD_EXAMPLES -> OpenCV 附带许多示例应用程序,您可以从中学习库的大部分功能。这对于轻松测试 OpenCV 是否在您的计算机上完全正常工作也很有用。
  • BUILD_PACKAGE -> 在 2.3 版本之前,您可以通过此构建一个项目,该项目将构建一个 OpenCV 安装程序。通过它,您可以轻松地在其他系统上安装您的 OpenCV 版本。对于最新的 OpenCV 源文件,它生成一个新项目,该项目只是创建一个包含 OpenCV 源的 zip 归档文件。
  • BUILD_SHARED_LIBS -> 通过此选项,您可以控制是构建 DLL 文件(开启时)还是静态库文件 (*.lib)(否则)。
  • BUILD_TESTS -> OpenCV 的每个模块都分配有一个测试项目。构建这些测试项目也是一个很好的方法,可以测试这些模块在您的系统上是否也按预期工作。
  • BUILD_PERF_TESTS -> 还有许多 OpenCV 函数的性能测试。如果您关注性能,请构建并运行它们。
  • BUILD_opencv_python -> 不言自明。创建二进制文件以从 Python 语言使用 OpenCV。
  • BUILD_opencv_world -> 生成一个单一的“opencv_world”二进制文件(共享库或静态库,取决于 BUILD_SHARED_LIBS),包含所有模块,而不是单独的二进制文件集合(每个模块一个二进制文件)。

再次按下 Configure 按钮,确保没有报告错误。如果一切正常,您可以点击 Generate 按钮告诉 CMake 创建项目文件。转到构建目录并打开创建的 OpenCV 解决方案。根据您选择了多少上述选项,解决方案可能包含相当多的项目,因此在启动时请对 IDE 保持耐心。现在您需要构建 ReleaseDebug 二进制文件。构建其中一个版本后,使用 IDE 上的下拉菜单切换到另一个版本。

最后,您可以在 bin 目录中看到构建好的二进制文件

对于文档,您需要显式地对 doxygen 项目发出构建命令以生成 HTML 文档。它将调用 Doxygen 来完成所有繁重的工作。您可以在 build/doc/doxygen/html 中找到生成的文档。

要将您自己项目中将使用的头文件和二进制文件收集到一个单独的目录中(类似于预编译二进制文件的发布方式),您需要显式构建 Install 项目。

这将在 Build 目录内创建一个 Install 目录,将所有构建的二进制文件收集到一处。仅在您构建了 ReleaseDebug 版本之后才使用此功能。

要测试您的构建,只需进入 Build/bin/DebugBuild/bin/Release 目录并启动几个应用程序,例如 contours.exe。如果它们运行正常,则表示您已完成。否则,肯定出了非常严重的错误。在这种情况下,您应该联系我们的 问答论坛。如果一切正常,contours.exe 的输出应该类似于以下图像(如果支持 Qt 构建)

注意
如果您使用 GPU 模块 (CUDA 库),请确保您也已升级到最新的 GPU 驱动程序。包含无效条目(或无法找到)nvcuda.dll 的错误消息通常是由旧显卡驱动程序引起的。要测试 GPU(如果已构建),请运行 performance_gpu.exe 示例应用程序。

设置 OpenCV 环境变量并将其添加到系统路径

首先,我们设置一个环境变量,使我们的工作更轻松。这将保存我们在项目中使用的 OpenCV 库的构建目录。启动一个命令窗口并输入

setx OpenCV_DIR D:\OpenCV\build\x64\vc14 (建议用于 Visual Studio 2015 - 64 位 Windows)
setx OpenCV_DIR D:\OpenCV\build\x86\vc14 (建议用于 Visual Studio 2015 - 32 位 Windows)
setx OpenCV_DIR D:\OpenCV\build\x64\vc15 (建议用于 Visual Studio 2017 - 64 位 Windows)
setx OpenCV_DIR D:\OpenCV\build\x86\vc15 (建议用于 Visual Studio 2017 - 32 位 Windows)
setx OpenCV_DIR D:\OpenCV\build\x64\vc16 (建议用于 Visual Studio 2019 - 64 位 Windows)
setx OpenCV_DIR D:\OpenCV\build\x86\vc16 (建议用于 Visual Studio 2019 - 32 位 Windows)
setx OpenCV_DIR D:\OpenCV\build\x64\vc17 (建议用于 Visual Studio 2022 - 64 位 Windows)
setx OpenCV_DIR D:\OpenCV\build\x86\vc17 (建议用于 Visual Studio 2022 - 32 位 Windows)

这里的目录是您存放 OpenCV 二进制文件(已提取已构建)的地方。您可以有不同的平台(例如 x64 而不是 x86)或编译器类型,因此请替换相应的值。在此目录中,您应该有两个名为 libbin 的文件夹。

如果您构建了静态库,那么您就完成了。否则,您需要将 bin 文件夹的路径添加到系统路径中。这是因为您将以“动态链接库”(也称为 DLL)的形式使用 OpenCV 库。其中存储了 OpenCV 库包含的所有算法和信息。操作系统只会在运行时按需加载它们。然而,要做到这一点,操作系统需要知道它们在哪里。系统的 PATH 包含一个可以找到 DLL 的文件夹列表。将 OpenCV 库路径添加到此列表中,操作系统就会知道在需要 OpenCV 二进制文件时去哪里查找。否则,您将需要将使用的 DLL 复制到应用程序的可执行文件 (exe) 旁边,以便操作系统找到它,这在处理多个项目时会非常不便。要做到这一点,请再次启动 PathEditor 并添加以下新条目(在应用程序中右键单击以调出菜单)

%OPENCV_DIR%\bin

将其保存到注册表,您就完成了。如果您更改构建目录的位置,或者想用不同的构建来尝试您的应用程序,您所需要做的就是通过命令窗口中的 setx 命令更新 OPENCV_DIR 变量。

现在您可以继续阅读教程中的 如何在“Microsoft Visual Studio”中用 OpenCV 构建应用程序 部分。在那里您将了解如何在 Microsoft Visual Studio IDE 的帮助下,在您自己的项目中使用 OpenCV 库。