在 Windows 中安装OpenCV

发布时间:2024年01月12日

使用预构建的库进行安装

  1. 启动所选的 Web 浏览器并转到我们在?Sourceforge 上的页面
  2. 选择要使用的内部版本并下载它。
  3. 确保您具有管理员权限。解压缩自解压存档。
  4. 您可以在所选路径检查安装,如下所示。

    OpenCV_Install_Directory.png

  5. 要完成安装,请转到设置 OpenCV 环境变量并将其添加到系统路径部分。

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

  1. 您必须下载?cmake(版本 >=3.9.1)并安装它。您必须在安装过程中将 cmake 添加到 PATH 变量中
  2. 您必须安装?git-bash (version>=2.14.1)。不要在安装过程中将 git 添加到 PATH 变量中
  3. 运行 git-bash。您将看到一个命令行窗口。假设你想在 c:/lib 中构建 opencv 和 opencv_contrib
  4. 在 git 命令行中,输入以下命令(如果文件夹不存在):
    mkdir /c/库
    cd /c/库
  5. 在 c:/lib 中使用名称 installOCV.sh 保存此脚本
    #!/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+ 是必需的
    如果 [ ! -d “$myRepo/opencv” ];然后
    echo “克隆 opencv”
    git clone https://github.com/opencv/opencv.git
    光盘opencv
    git pull --rebase
    cd ..
    fi
    如果 [ ! -d “$myRepo/opencv_contrib” ];然后
    Echo “克隆opencv_contrib”
    git clone https://github.com/opencv/opencv_contrib.git
    光盘opencv_contrib
    git pull --rebase
    cd ..
    fi
    存储库 = opencv
    mkdir -p build_opencv
    推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)
    设置 -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 -->调试”
    cmake --构建。--config 调试
    echo “************************* $Source_DIR -->发布”
    cmake --构建。--config 发布
    cmake --构建。--target install --config 发布
    cmake --构建。--target install --config 调试
    在此脚本中,我假设您使用 2015 位的 VS 64
    CMAKE_GENERATOR_OPTIONS=-G“Visual Studio 14 2015 Win64”
    opencv 将安装在 c:/lib/install/opencv 中
    -DCMAKE_INSTALL_PREFIX=“$myRepo/安装/$RepoSource”
    没有 Perf 测试,没有测试,没有文档,没有 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 将更新并重新生成

通过从源文件创建自己的库进行安装

如果您正在构建自己的库,则可以从我们的?Git 存储库中获取源文件。

从头开始构建 OpenCV 库需要事先安装几个工具:

  • 选择的 IDE(最好),或者只是一个实际生成二进制文件的 CC++ 编译器。在这里,我们将使用?Microsoft Visual Studio。但是,您可以使用具有有效 CC++ 编译器的任何其他 IDE。
  • CMake,这是一个简洁的工具,用于从 OpenCV 源文件创建项目文件(对于您选择的 IDE)。它还允许轻松配置 OpenCV 构建文件,以便制作完全适合您需求的二进制文件。
  • Git 获取 OpenCV 源文件。一个很好的工具是?TortoiseGit。或者,您可以从我们在?Sourceforge 上的页面下载源文件的存档版本

OpenCV 可能有多种风格。有一个“核心”部分可以独立工作。尽管如此,还是有一些工具,由第三方制作的库,它们提供的服务是OpenCV可以利用的。这些将在许多方面提高其能力。为了使用其中任何一个,您需要在系统上下载并安装它们。

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

现在,我们将介绍完整构建(使用上述所有框架、工具和库)要遵循的步骤。如果您不需要对其中一些的支持,则可以自由地跳过此部分。

构建库

  1. 确保您有一个具有有效编译器的工作 IDE。如果是Microsoft Visual Studio,只需安装它并确保它启动。
  2. 安装?CMake。只需按照向导操作,无需将其添加到路径中。默认安装选项为 OK。
  3. 从其官方网站下载并安装最新版本的 msysgit。还有便携版本,您只需解压缩即可访问 Git 的控制台版本。假设对于我们中的一些人来说,这可能就足够了。
  4. 安装?TortoiseGit。根据您使用的操作系统类型选择 32 位或 64 位版本。安装时,找到您的 msysgit(如果它没有自动执行此操作)。按照向导操作 - 默认选项在大多数情况下是可以的。
  5. 在文件系统中选择一个目录,将 OpenCV 库下载到该目录。我建议创建一个具有短路径且没有特殊字符的新路径,例如 .在本教程中,我建议您这样做。如果你使用自己的道路并知道你在做什么——没关系。D:/OpenCV
    1. 将存储库克隆到所选目录。单击“克隆”按钮后,将出现一个窗口,您可以在其中选择要下载源文件 (GitHub - opencv/opencv: Open Source Computer Vision Library) 的存储库以及下载到哪个目录 ()。D:/OpenCV
    2. 按下 OK 按钮并耐心等待,因为存储库的下载量相当大。这将需要一些时间,具体取决于您的 Internet 连接。
  6. 在本节中,我将介绍如何安装第三方库。
    1. 下载?Python 库并使用默认选项进行安装。您将需要其他几个 python 扩展。幸运的是,所有这些的安装都可以通过一个名为?Setuptools?的好工具自动完成。下载并重新安装。
    2. 安装 Numpy 的最简单方法是从?sourceforge 页面下载其二进制文件。确保您下载并安装的二进制文件完全适用于您的 python 版本(因此对于版本 )。2.7
    3. 对于英特尔线程构建模块 (TBB),请下载源文件并将其解压缩到系统上的目录中。例如,让有 .对于安装英特尔集成性能基元 (IPP),情况是一样的。为了提取档案,我建议使用?7-Zip?应用程序。D:/OpenCV/dep

      英特尔TBB.png

    4. 对于?Eigen?库,它又是下载并提取到目录的情况。D:/OpenCV/dep
    5. 与上述?OpenEXR?相同。
    6. 对于OpenNI框架,您需要安装开发版本PrimeSensor模块
    7. 对于 CUDA,您还需要两个模块:最新的?CUDA 工具包和?CUDA 工具 SDK。根据您的操作系统使用 32 位或 64 位设置下载并安装带有完整选项的它们。
    8. 对于Qt框架,您需要自己构建二进制文件(除非您使用带有32位编译器的Microsoft Visual Studio 2008)。为此,请转到Qt下载页面。下载源文件(不是安装程序!!):

      qt下载此包.png

      将其解压缩到一个漂亮且简短的命名目录中,例如 .然后你需要构建它。使用“开始”菜单搜索启动 Visual Studio 命令提示符 (2010)(或浏览“开始”菜单“所有程序”> Microsoft Visual Studio 2010“>”Visual Studio 工具“>”Visual?Studio?命令提示符 (2010)“)。D:/OpenCV/dep/qt/

      可视化工作室命令提示.jpg

      现在导航到提取的文件夹,然后使用此控制台窗口进入其中。您应该有一个包含?InstallMake?等文件的文件夹。使用?dir?命令列出当前目录中的文件。到达此目录后,输入以下命令:

      配置.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插件。在此之后,您可以在不使用Qt Creator的情况下制作和构建Qt应用程序。一切都很好地集成到 Visual Studio 中。

  7. 现在启动?CMake (cmake-gui)。您可以再次在开始菜单搜索中输入它,也可以从所有程序 –> CMake 2.8 –> CMake (cmake-gui) 中获取它。首先,选择 OpenCV 库 (1) 的源文件的目录。然后,指定一个目录,您将在其中构建 OpenCV 的二进制文件 (2)。

    CMakeSelectBin.jpg

    按“配置”按钮指定要使用的编译器(和?IDE)。请注意,您可以在不同的编译器之间进行选择以创建 64 位或 32 位库。选择您在应用程序开发中使用的那个。

    CMake_Configure_Windows.jpg

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

    CMakeBuildWithWindowsGUI.jpg

    选择要使用的所有包,然后再次按“配置”按钮。为了更轻松地概述生成选项,请确保二进制目录选择下的“分组”选项处于打开状态。对于某些包,CMake 可能无法找到所有必需的文件或目录。在这种情况下,CMake 将在其输出窗口(位于 GUI 底部)中抛出错误,并将其字段值设置为未找到常量。例如:

    CMakePackageNotFoundWindows.jpg

    CMakeOutputPackageNotFound.jpg

    对于这些,您需要手动设置查询的目录或文件路径。在此之后,再次按下“配置”按钮,查看您输入的值是否被接受。执行此操作,直到所有条目都正确,并且您在 GUI 的字段/值或输出部分看不到错误。现在我想强调一个你一定会喜欢的选项:ENABLE –> ENABLE_SOLUTION_FOLDERS。OpenCV 将创建多个项目,转动此选项将确保它们被归类在解决方案资源管理器的目录中。如果你问我,这是一个必须具备的功能。

    CMakeBuildOptionsOpenCV.jpg

    此外,您需要选择要构建的 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),而不是单独的二进制文件的集合,每个模块一个二进制文件。

    再次按下“配置”按钮,确保未报告任何错误。如果是这种情况,您可以通过按“生成”按钮来告诉 CMake 创建项目文件。进入构建目录,打开创建的OpenCV解决方案。根据您选择的上述选项的数量,解决方案可能包含相当多的项目,因此在启动时要对 IDE 持宽容态度。现在,您需要同时生成?Release?和?Debug?二进制文件。使用 IDE 上的下拉菜单,在为其中一个生成后更改为另一个。

    ChangeBuildVisualStudio.jpg

    最后,您可以观察到 bin 目录下构建的二进制文件:

    OpenCVBuildResultWindows.jpg

    对于文档,您需要在 HTML 文档的?doxygen?项目上显式发出 build 命令。它会召唤?Doxygen?来完成所有艰苦的工作。您可以在 .build/doc/doxygen/html

    若要将头文件和二进制文件(将在自己的项目期间使用)收集到单独的目录中(类似于预构建二进制文件的交付方式),需要显式生成?Install?项目。

    WindowsBuildInstall.png

    这将在?Build?one 中创建一个?Install?目录,将所有构建的二进制文件收集到一个位置。只有在生成?Release?和?Debug?版本后,才使用此选项。

    要测试您的构建,只需进入 or 目录并启动几个应用程序,例如轮廓 .exe。如果他们跑了,你就完成了。否则,肯定出了什么大问题。在这种情况下,您应该在我们的问答论坛上与我们联系。如果一切正常,轮廓.exe输出应类似于下图(如果在Qt支持下构建):Build/bin/DebugBuild/bin/Release

    WindowsQtContours输出.png

注意

如果您使用 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)

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

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

%OPENCV_DIR%\bin

路径编辑器OpenCVInsertNew.png

PathEditorOpenCVSetPath.png

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

文章来源:https://blog.csdn.net/2301_81888214/article/details/135527682
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。