在windows上安装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_CONFIG_GENERATOR="Visual Studio 14 2015 Win64"
if [ ! -d "$myRepo/opencv" ]; thenecho "cloning opencv"git clone https://github.com/opencv/opencv.gitmkdir -p Build/opencvmkdir -p Install/opencv
elsecd opencvgit pull --rebasecd ..
fi
if [ ! -d "$myRepo/opencv_contrib" ]; thenecho "cloning opencv_contrib"git clone https://github.com/opencv/opencv_contrib.gitmkdir -p Build/opencv_contrib
elsecd opencv_contribgit pull --rebasecd ..
fi
RepoSource=opencv
pushd Build/$RepoSource
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'
cmake -G"$CMAKE_CONFIG_GENERATOR" $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_CONFIG_GENERATOR=“Visual Studio 14 2015 Win64”
备注
如果你想要用VS 2017,你可以这样修改
CMAKE_CONFIG_GENERATOR="Visual Studio 15 2017 Win64"
并且opencv将安装在c:/ lib / install中
-DCMAKE_INSTALL_PREFIX=“myRepo"/install/"myRepo"/install/"myRepo"/install/"RepoSource” “myRepo/myRepo/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
到这里就完成了安装,可以在Visual Studio里用OpenCV了。这是最简单的方法,如果你想要opencv_contrib下的module,但如果你只想要OpenCV,可以直接在OpenCV的官网上下载windows的安装包,解压后就可以了。
通过从源文件制作自己的库进行安装
如果您要构建自己的库,则可以从我们的Git存储库中获取源文件。
从头开始构建OpenCV库需要预先安装几个工具:
-
选择一个IDE(最好),或者只是一个将实际生成二进制文件的CC ++编译器。 在这里,我们将使用Microsoft Visual
Studio。 但是,您可以使用具有有效CC ++编译器的任何其他IDE。 -
CMake,这是一个精巧的工具,可以从OpenCV源文件生成项目文件(针对您选择的IDE)。 它还将允许轻松配置OpenCV构建文件,以使二进制文件完全适合您的需求。
-
Git获取OpenCV源文件。
一个很好的工具是TortoiseGit。 另外,您也可以从Sourceforge上的页面下载源文件的存档版本
OpenCV可能有多种形式。 有一个“核心”部分可以独立工作。 尽管如此,还是有一些由第三方组成的工具库(3rd parties),它们提供了OpenCV可以利用的服务。 这些将在许多方面提高其功能。 为了使用它们中的任何一个,您需要下载并将它们安装在系统上。
-
需要Python库来构建OpenCV的Python接口。现在,请使用2.7.{x}版本。如果要构建OpenCV文档,这也是必须的。
-
Numpy是用于Python的科学计算软件包。 Python介面所必需。
-
OpenCV内部使用英特尔线程构建模块(TBB)处理并行代码段。使用此功能可确保OpenCV库将利用系统CPU中拥有的所有内核。
-
英特尔集成性能基元(IPP)可用于提高OpenCV库的颜色转换,Haar训练和DFT功能的性能。请注意,因为这不是一项免费服务。
-
与使用Qt框架的默认用户界面相比,OpenCV提供了一种更精美,更有用的图形用户界面。要快速了解此功能,请查看“ Qt新功能”部分下的文档highgui模块。需要框架的4.6版或更高版本。
-
Eigen是用于线性代数的C ++模板库。
-
最新的CUDA工具包将允许您使用GPU内部的电源。这将大大提高某些算法(例如HOG描述符)的性能。 OpenCV团队不断努力使我们越来越多的算法能够在GPU上运行。
-
该库需要OpenEXR源文件才能使用这种高动态范围(HDR)图像文件格式。
-
OpenNI框架包含一组开源API,这些API通过语音命令识别,手势和身体运动跟踪等方法为与设备的自然交互提供支持。预编译的二进制文件可以在这里找到。 Github上也提供了OpenNI和OpenNI2的源代码
-
Doxygen是一个文档生成器,并且是实际上将创建OpenCV文档的工具。
现在,我们将描述完整构建所要遵循的步骤(使用上述所有框架,工具和库)。 如果不需要其中一些支持,则可以随意跳过本节。
建立文库
1.确保您的IDE带有有效的编译器。如果是Microsoft Visual Studio,则只需安装并确保其启动即可。
2.安装CMake。只需遵循向导,无需将其添加到路径。默认安装选项为“确定”。
3.从其官方站点下载并安装msysgit的最新版本。还有一个便携式版本,您只需打开包装即可访问Git的控制台版本。假设对于我们中的某些人来说,这可能就足够了。
4.安装TortoiseGit。根据您使用的操作系统类型选择32位或64位版本。在安装时,找到您的msysgit(如果它不会自动执行此操作)。按照向导进行操作–大多数情况下,默认选项都可以。
5.在文件系统中选择一个目录,您将在其中下载OpenCV库。我建议创建一个路径短且没有特殊字符的新路径,例如D:/ OpenCV。对于本教程,我建议您这样做。如果您使用自己的路径并且知道自己在做什么–可以。
a.将存储库克隆到所选目录。单击“克隆”按钮后,将出现一个窗口,您可以从其中选择要下载源文件的存储库(https://github.com/opencv/opencv.git)以及要下载到的目录(D:/ OpenCV)。
b.按下“确定”按钮,请耐心等待,因为该资源库下载量很大。这将需要一些时间,具体取决于您的Internet连接。
6.在本节中,我将介绍安装第三方库(3rd party libraries)。
a.下载Python库并使用默认选项进行安装。您将需要其他几个python扩展。幸运的是,可以通过一个名为Setuptools的不错的工具来自动安装所有这些工具。重新下载并安装。
b.安装Numpy的最简单方法是仅从sourceforge页面下载其二进制文件。确保下载并完全安装适用于python版本的二进制文件(适用于2.7版本)。
c.对于英特尔线程构建模块(TBB),请下载源文件并将其解压缩到系统上的目录中。例如,让D:/ OpenCV / dep。对于安装英特尔集成性能基元(IPP)的情况是相同的。要提取档案,我建议使用7-Zip应用程序。
d.如果是Eigen库,则还是要下载并解压缩到D:/ OpenCV / dep目录。
e.与上述OpenEXR相同。
f.对于OpenNI框架,您需要同时安装开发版本和PrimeSensor模块。
g.对于CUDA,您再次需要两个模块:最新的CUDA工具包和CUDA工具SDK。 根据您的操作系统,使用32或64位设置下载并安装完整的选项。
h.如果使用Qt框架,则需要自己构建二进制文件(除非您将Microsoft Visual Studio 2008与32位编译器一起使用)。 为此,请转到“ Qt下载”页面。 下载源文件(而不是安装程序!!):
将其解压缩到一个漂亮且简短的目录中,例如D:/ OpenCV / dep / qt /。 然后,您需要构建它。 通过使用开始菜单搜索来启动Visual Studio命令提示符(2010)(或在开始菜单“所有程序”->“ Microsoft Visual Studio 2010”->“ Visual Studio工具”->“ 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加载项。 之后,您无需使用Qt Creator即可制作和构建Qt应用程序。 一切都很好地集成到Visual Studio中。
7.现在启动CMake(cmake-gui)。 您可以再次在开始菜单搜索中输入它,也可以从“所有程序”-> CMake 2.8-> CMake(cmake-gui)中获取它。 首先,选择OpenCV库的源文件目录(1)。 然后,指定用于构建OpenCV(2)二进制文件的目录。
按“配置(Configure )”按钮以指定要使用的编译器(和IDE)。 请注意,如果您可以在不同的编译器之间进行选择,以制作64位或32位库。 选择在应用程序开发中使用的一个。
CMake将启动,并根据您的系统变量尝试自动定位尽可能多的软件包。 您可以在WITH –> WITH_X菜单点(其中X是软件包的缩写)中修改要用于构建的软件包。 以下是您可以打开或关闭的当前软件包的列表:
选择您要使用的所有软件包,然后再次按“配置”按钮。 为了更轻松地了解构建选项,请确保已打开二进制目录选择下的“分组”选项。 对于某些软件包,CMake可能找不到所有必需的文件或目录。 在这种情况下,CMake将在其输出窗口(位于GUI的底部)中引发错误,并将其字段值设置为找不到常量。 例如:
对于这些,您需要手动设置查询的目录或文件路径。 之后,再次按“配置”按钮以查看您输入的值是否被接受。 执行此操作,直到所有输入都正确,并且看不到GUI的字段/值或输出部分中的错误为止。 现在,我想强调一个您一定会喜欢的选项:ENABLE –> ENABLE_SOLUTION_FOLDERS。 OpenCV将创建许多项目,并且选择此选项将确保它们在解决方案资源管理器的目录中被归类。 如果您问我,这是必须具备的功能。
此外,您需要选择要构建OpenCV的哪一部分。
- BUILD_DOCS->它创建两个项目来构建OpenCV的文档(将有一个单独的项目来构建HTML和PDF文件)。请注意,这些不是与解决方案一起构建的。您需要对这些命令执行一个明确的build project
- BUILD_EXAMPLES-> OpenCV附带了许多示例应用程序,您可以从中学习大多数库功能。如果您的计算机上的OpenCV功能齐全,这也将很容易尝试。
- BUILD_PACKAGE->在此之前的2.3版之前,您可以构建一个将构建OpenCV安装程序的项目。这样,您就可以轻松地在其他系统上安装OpenCV Favourite。对于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上的下拉菜单将其更改为另一个。
最后,您可以观察bin目录中构建的二进制文件:
对于文档,您需要在doxygen项目上为HTML文档明确发出构建命令。 它将调用Doxygen进行所有艰苦的工作。 您可以在build / doc / doxygen / html中找到生成的文档。
要将标头和二进制文件(将在自己的项目中使用)收集到一个单独的目录中(类似于预构建的二进制文件的方式),需要显式构建Install项目。
这将在Build内部创建一个Install目录,将所有已构建的二进制文件收集到一个位置。 仅在构建发行版和调试版之后才使用此功能。
要测试您的构建,只需进入Build / bin / Debug或Build / bin / Release目录并启动几个应用程序,例如contours.exe。 如果它们运行,您就完成了。 否则,肯定会出现严重错误。 在这种情况下,您应该在我们的问答论坛上与我们联系。 如果一切正常,则contours.exe输出应类似于以下图像(如果使用Qt支持构建):
注意
如果使用GPU模块(CUDA库),请确保还升级到GPU的最新驱动程序。 错误消息中包含(或找不到)nvcuda.dll中的无效条目,主要是由旧的视频卡驱动程序引起的。 要测试GPU(如果已构建),请运行performance_gpu.exe示例应用程序。
设置OpenCV环境变量并将其添加到系统路径
首先,我们设置一个环境变量以简化我们的工作。 这将保存我们在项目中使用的OpenCV库的build目录。 启动命令窗口并输入:
setx -m OPENCV_DIR D:\ OpenCV \ Build \ x86 \ vc11(建议用于Visual Studio 2012-32位Windows)
setx -m OPENCV_DIR D:\ OpenCV \ Build \ x64 \ vc11(建议用于Visual Studio 2012-64位Windows)
setx -m OPENCV_DIR D:\ OpenCV \ Build \ x86 \ vc12(建议用于Visual Studio 2013-32位Windows)
setx -m OPENCV_DIR D:\ OpenCV \ Build \ x64 \ vc12(建议用于Visual Studio 2013-64位Windows)
setx -m OPENCV_DIR D:\ OpenCV \ Build \ x64 \ vc14(建议用于Visual Studio 2015-64位Windows)
在此目录中,可以找到(提取或构建的)OpenCV二进制文件。您可以使用其他平台(例如x64而不是x86)或编译器类型,因此请替换适当的值。在其中,您应该有两个名为lib和bin的文件夹。如果要使计算机设置明智,而不是用户明智,则应添加-m。
如果您构建了静态库,那么您就完成了。否则,您需要将bin文件夹路径添加到系统路径。这是因为您将以*“动态链接库” *(也称为DLL)的形式使用OpenCV库。这些内部存储着OpenCV库包含的所有算法和信息。操作系统将仅在运行时按需加载它们。但是,为此,操作系统需要知道它们的位置。系统PATH包含可以找到DLL的文件夹列表。将OpenCV库路径添加到此路径,然后操作系统将知道他是否需要OpenCV二进制文件在哪里寻找。否则,您将需要在操作系统的应用程序可执行文件(exe)旁边复制使用的DLL,以找到它,如果您在许多项目上工作,这将是非常不愉快的。为此,请再次启动PathEditor并添加以下新条目(在应用程序中单击鼠标右键以显示菜单):
%OPENCV_DIR%\bin
将其保存到注册表中,即可完成操作。 如果您更改了构建目录的位置,或者想尝试使用其他构建版本的应用程序,那么您要做的就是通过命令窗口中的setx命令更新OPENCV_DIR变量。
现在,您可以继续阅读“ Microsoft Visual Studio”部分中的“如何使用OpenCV构建应用程序”教程。 在那里,您将找到如何在Microsoft Visual Studio IDE的帮助下在自己的项目中使用OpenCV库。