阅读(3701) (16)

OpenCV 在Windows中安装

2017-08-22 11:48:52 更新

此处的描述在Windows 7 SP1上进行了测试。然而,它也应该适用于任何其他相对现代的Windows操作系统。

如果您按照以下步骤后遇到错误,请随时通过OpenCV Q&A论坛与我们联系。我们将竭尽全力帮助您。

注意
要使用OpenCV库,您有两个选项:通过使用预构建库进行安装通过从源文件创建自己的库进行安装虽然第一个更容易完成,但只有当您使用最新的Microsoft Visual Studio IDE进行编码时,才能使用它,并且不会利用我们集成到我们的库中的最先进的技术。.. _Windows_Install_Prebuild:

使用预构建的库进行安装

  1. 启动一个首选的网页浏览器,并转到我们的Sourceforge页面
  2. 选择一个你想要使用和下载它的构建。
  3. 确保您具有管理员权限。解压缩自解压存档。
  4. 您可以在所选路径上检查安装,如下所示。

OpenCV 在Windows中安装

通过从源文件制作自己的库来进行安装

您可以在以下视频中找到本教程的内容:托管在YouTube上的第1 部分和第2部分。

警告

以上这些视频已经过时,包含不准确的信息。请注意,由于这些视频中描述的解决方案不再受支持,甚至可能会中断您的安装。

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

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

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

OpenCV可能会有多种口味。有一个“核心”部分将自行工作。然而,有几种工具,由第三方提供的图书馆提供OpenCV可能利用的服务。这些将在许多方面提高其能力。为了使用任何一个,您需要在系统上下载并安装它们。

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

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

建立图书馆

  1. 确保你有一个工作的IDE与一个有效的编译器。如果Microsoft Visual Studio只是安装它并确保它启动。
  2. 安装CMake的。只需按照向导,不需要将其添加到路径。默认安装选项可以。
  3. 从其官方网站下载并安装最新版本的msysgit 。还有便携式版本,您只需解压即可访问控制台版本的Git。假设对于我们中的一些人来说,这可能是足够的。
  4. 安装TortoiseGit。根据您工作的操作系统的类型选择32位或64位版本。安装时,找到您的msysgit(如果不自动)。按照向导 - 大部分默认选项都可以。
  5. 在文件系统中选择一个目录,您将在其中下载OpenCV库。我建议创建一个新的,具有短路径,没有特殊字符,例如D:/OpenCV。对于本教程,我将建议您这样做。如果你使用自己的路径知道你在做什么 - 这是可以的。将存储库克隆到所选目录。单击克隆按钮后,将出现一个窗口,您可以从中选择要从哪个存储库下载源文件(https://github.com/opencv/opencv.git)以及什么目录(D:/OpenCV)。按OK按钮,耐心等候,因为存储库是相当沉重的下载。根据您的互联网连接需要一些时间。
  6. 在本节中,我将介绍如何安装第三方库。
  • 下载Python库并使用默认选项进行安装。您将需要一些其他python扩展。幸运的是安装所有这些可以通过一个名为Setuptools的好工具进行自动化。再次下载并安装。
  • 安装Numpy最简单的方法是从sourceforge页面下载其二进制文件。确保您的下载并安装完整的python版本的二进制(所以版本2.7)。
  • 对于英特尔线程构建块(TBB),请下载源文件并将其解压缩到系统上的目录中。例如让我们来D:/OpenCV/dep。为了安装Intel Integrated Performance Primitives(IPP),故事是一样的。为了提取档案,我建议您使用7-Zip应用程序。

OpenCV 在Windows中安装

  • 对于Intel IPP异步C / C ++下载源文件并设置环境变量IPP_ASYNC_ROOT。应该指出<your Program Files(x86) directory>/Intel/IPP Preview */ipp directory。这里*表示特定的预览名称。
  • 在Eigen库的情况下,再次下载并提取到D:/OpenCV/dep目录的情况。
  • 与OpenEXR相同。
  • 对于OpenNI Framework,您需要安装开发版本和PrimeSensor模块。
  • 对于CUDA,您需要再次使用两个模块:最新的CUDA Toolkit和CUDA Tools SDK。根据您的操作系统,使用32位或64位安装程序,通过完整的选项下载并安装它们两者。
  • 在Qt框架的情况下,您需要构建二进制文件(除非您使用带有32位编译器的Microsoft Visual Studio 2008)。为此,请访问Qt下载页面。下载源文件(不是安装程序!!!):

OpenCV 在Windows中安装

解压缩到是个不错的短命名的目录中D:/OpenCV/dep/qt/。那么你需要建立它。启动一个视觉 工作室 命令 提示符2010)通过开始菜单的搜索(或通过开始菜单导航所有程序- >微软的Visual Studio 2010 - > Visual Studio工具- > Visual Studio命令提示符(2010))。

OpenCV 在Windows中安装

现在导航到提取的文件夹并使用此控制台窗口进入它。您应该有一个文件夹包含安装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加载项。之后,您可以制作和构建Qt应用程序,而无需使用Qt Creator。一切都很好地集成到Visual Studio中。

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

OpenCV 在Windows中安装

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

OpenCV 在Windows中安装

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

OpenCV 在Windows中安装

选择要使用的所有软件包,然后再次按配置按钮。有关构建选项的简要概述,请确保二进制目录选择下的分组选项已打开。对于某些包,CMake可能找不到所有必需的文件或目录。在这些情况下,CMake将在其输出窗口(位于GUI底部)发出错误,并将其字段值设置为未找到的常量。例如:

OpenCV 在Windows中安装

OpenCV 在Windows中安装

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

OpenCV 在Windows中安装

此外,您需要选择要构建的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的二进制文件。

再次按配置按钮,确保没有报告错误。如果是这种情况,可以通过按下“ 生成”按钮来告诉CMake创建项目文件。转到构建目录并打开创建的OpenCV解决方案。根据您选择的上述选项,您可以选择多少项目可能包含相当多的项目,以便在启动时可以在IDE上容忍。现在您需要同时构建ReleaseDebug二进制文件。使用IDE上的下拉菜单,在其中一个进行构建之后,更改其中的另一个。

OpenCV 在Windows中安装

最后,您可以观察bin目录中的内置二进制文件:

OpenCV 在Windows中安装

对于文档,您需要在doxygen项目上明确地发出构建命令,以获取HTML文档。它会叫Doxygen做所有的辛勤工作。您可以在其中找到生成的文档build/doc/doxygen/html。

要收集您将在自己的项目期间使用的标题和二进制文件到独立的目录(与预构建的二进制代码一样),您需要显式构建安装项目。

OpenCV 在Windows中安装

这将在Build中创建一个Install目录,将所有构建的二进制文件集合到一个位置。仅在构建版本和调试版本之后才能使用。

要测试您的构建,只需进入Build/bin/Debug或Build/bin/Release目录,并启动几个应用程序,如contours.exe。如果他们跑,你就完成了。否则,绝对会有一些错误。在这种情况下,您应该在我们的问答论坛上与我们联系。如果一切正常,contours.exe输出应类似于以下图像(如果使用Qt支持构建):

OpenCV 在Windows中安装

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

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

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

setx -m OPENCV_DIR D:OpenCVBuildx86vc11     (suggested for Visual Studio 2012 - 32 bit Windows)
setx -m OPENCV_DIR D:OpenCVBuildx64vc11     (suggested for Visual Studio 2012 - 64 bit Windows)
setx -m OPENCV_DIR D:OpenCVBuildx86vc12     (suggested for Visual Studio 2013 - 32 bit Windows)
setx -m OPENCV_DIR D:OpenCVBuildx64vc12     (suggested for Visual Studio 2013 - 64 bit Windows)
setx -m OPENCV_DIR D:OpenCVBuildx64vc14     (suggested for Visual Studio 2015 - 64 bit Windows)

这里的目录是您的OpenCV二进制文件(提取或构建)。您可以有不同的平台(例如x64而不是x86)或编译器类型,所以替换适当的值。在这里面,你应该有两个名为lib和bin的文件夹。如果您希望将计算机设置为智能,而不是用户明智,则应添加-m。

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

%OPENCV_DIR% bin中

OpenCV 在Windows中安装

OpenCV 在Windows中安装

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

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