返回:OpenCV系列文章目录(持续更新中......)
-
上一章:将 OpenCV 与 Eclipse 结合使用(插件 CDT)
下一章:未发表
警告:
本教程可以包含过时的信息.
此处的描述已在 Windows 7 SP1 上进行了测试。尽管如此,它也应该适用于任何其他相对现代的 Windows 操作系统版本。如果您在执行以下步骤后遇到错误,通过 OpenCV Q&A 论坛与OpenCV 团队联系。我们将尽最大努力为您提供帮助。
注意:
要使用 OpenCV 库,您有两种选择:使用预构建库进行安装或从源文件创建自己的库进行安装。虽然第一个更容易完成,但仅当您使用最新的 Microsoft Visual Studio IDE 进行编码并且不利用我们集成到库中的最先进的技术时,它才有效。. .. _Windows_Install_Prebuild:
一、使用预构建的库进行安装
- 启动选择的 Web 浏览器并转到我们在 Sourceforge 上的页面。
- 选择要使用的内部版本并下载它。
- 确保您拥有管理员权限。解压缩自解压存档。
-
您可以在所选路径上检查安装,如下所示
- 注:完成安装,请转到设置 OpenCV 环境变量并将其添加到系统路径部分。
使用 git-bash(版本>=2.14.1)和 cmake(版本 >=3.9.1)安装
- 您必须下载 cmake(版本 >=3.9.1)并安装它。在安装过程中,必须将 cmake 添加到 PATH 变量中
- 您必须安装 git-bash (version>=2.14.1)。在安装过程中不要将 git 添加到 PATH 变量中
- 运行 git-bash。您会看到一个命令行窗口。假设你想在 c:/lib 中构建 opencv 和 opencv_contrib
- 在 git 命令行中,输入以下命令(如果文件夹不存在)::
mkdir /c/lib
cd /c/lib
将此脚本与名称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+ is required
if [ ! -d "$myRepo/opencv" ]; then
echo "cloning opencv"
git clone https://github.com/opencv/opencv.git
else
cd opencv
git pull --rebase
cd ..
fi
if [ ! -d "$myRepo/opencv_contrib" ]; then
echo "cloning 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
在这个脚本中,我想你使用 2015 位的 VS 64
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
等待安装完成
下次运行此脚本时,opencv 和 opencv_contrib 将更新并重新生成
二、通过从源文件创建自己的库进行安装
您还可以在以下视频中找到本教程的内容:第 1 部分和第 2 部分,托管在 YouTube 上。
警告
上面的这些视频早已过时,包含不准确的信息。请注意,因为这些视频中描述的解决方案不再受支持,甚至可能会中断您的安装。
如果您正在构建自己的库,则可以从我们的 Git 存储库中获取源文件。
从头开始构建 OpenCV 库需要事先安装几个工具:
- 首选的 IDE(最好),或者只是一个实际制作二进制文件的 CC++ 编译器。在这里,我们将使用 Microsoft Visual Studio。但是,您可以使用具有有效 CC++ 编译器的任何其他 IDE。
- CMake,这是一个简洁的工具,用于从 OpenCV 源文件制作项目文件(对于您选择的 IDE)。它还允许轻松配置 OpenCV 构建文件,以便制作完全符合您需求的二进制文件。
- Git 获取 OpenCV 源文件。一个很好的工具是 TortoiseGit。或者,您可以从我们在 Sourceforge 上的页面下载源文件的存档版本
OpenCV 可能有多种风格。有一个“核心”部分可以独立工作。尽管如此,还是有一些工具,即由第三方制作的库,它们提供 OpenCV 可以利用的服务。这些将在许多方面提高其能力。为了使用其中任何一个,您需要在系统上下载并安装它们。
- 构建 OpenCV 的 Python 接口需要
2.7.{x}
Python 库。现在使用版本 .如果您想构建 OpenCV 文档,这也是必须的。 - Numpy 是 Python 的科学计算包。Python 接口是必需的。
- 英特尔线程构建模块 (TBB) 在 OpenCV 中用于并行代码片段。使用此功能将确保 OpenCV 库将利用系统 CPU 中的所有内核。
- 英特尔集成性能基元 (IPP) 可用于提高 OpenCV 库的颜色转换、Haar 训练和 DFT 功能的性能。请注意,因为这不是免费服务。
- OpenCV提供了一个比默认的图形用户界面更高级、更有用的图形用户界面,它使用了Qt框架。要快速了解它所提供的内容,请查看 Qt 新功能部分下的文档 highgui 模块。需要 4.6 或更高版本的框架。
- Eigen 是线性代数的 C++ 模板库。
- 最新的 CUDA 工具包将允许您使用 GPU 内部的电源。这将大大提高某些算法(例如 HOG 描述符)的性能。让越来越多的算法在 GPU 上工作是 OpenCV 团队的不懈努力。
- 库需要 OpenEXR 源文件才能使用这种高动态范围 (HDR) 图像文件格式。
- OpenNI 框架 包含 了 一组 开源 API, 通过 语音 命令 识别、 手势 和 身体 运动 跟踪 等 方法 支持 与 设备 的 自然 交互。可以在此处找到预构建的二进制文件。OpenNI 和 OpenNI2 的源代码也可以在 Github 上找到。
- Doxygen 是一个文档生成器,是实际创建 OpenCV 文档的工具。
现在,我们将描述完整构建(使用上述所有框架、工具和库)的步骤。如果您不需要对其中一些的支持,您可以自由跳过本节。
编译库
- 确保您有一个具有有效编译器的工作 IDE。如果是Microsoft Visual Studio,只需安装它并确保它启动。
- 安装 CMake。只需按照向导操作,无需将其添加到路径中。默认安装选项为 OK。
- 从其官方网站下载并安装最新版本的 msysgit。还有便携式版本,您只需解压即可访问 Git 的控制台版本。假设对我们中的一些人来说,这可能就足够了。
- 安装 TortoiseGit。根据您使用的操作系统类型选择 32 位或 64 位版本。安装时,找到您的 msysgit(如果它没有自动执行)。按照向导操作 - 默认选项在大多数情况下是正常的。
- 在文件系统中选择一个目录,您将 OpenCV 库下载到该目录。例如,我建议创建一个具有短路径且没有特殊字符的新路径。在本教程中,我建议您这样做。如果你使用自己的道路并知道你在做什么——没关系。
D:/OpenCV
- 将存储库克隆到所选目录。单击“克隆”按钮后,将出现一个窗口,您可以在其中选择要从哪个存储库下载源文件 (https://github.com/opencv/opencv.git) 以及下载到哪个目录 ()。
D:/OpenCV
- 按下“确定”按钮并耐心等待,因为存储库的下载量相当大。这将需要一些时间,具体取决于您的互联网连接。
- 将存储库克隆到所选目录。单击“克隆”按钮后,将出现一个窗口,您可以在其中选择要从哪个存储库下载源文件 (https://github.com/opencv/opencv.git) 以及下载到哪个目录 ()。
- 在本节中,我将介绍如何安装第三方库。
- 下载 Python 库并使用默认选项进行安装。您将需要其他几个 python 扩展。幸运的是,所有这些安装可以通过一个名为 Setuptools 的好工具自动完成。下载并重新安装。
- 安装 Numpy 的最简单方法是从 sourceforge 页面下载其二进制文件。确保您下载并安装的二进制文件完全适用于您的 python 版本(因此对于版本)。
2.7
-
对于英特尔线程构建模块 (TBB),请下载源文件并将其解压缩到系统上的某个目录中。例如
D:/OpenCV/dep
,让有 .对于安装英特尔集成性能基元 (IPP),情况是一样的。为了提取档案,我建议使用7-Zip应用程序。- 如果是 Eigen 库,则再次是下载并解压缩到目录的情况。
D:/OpenCV/dep
- 与上述 OpenEXR 相同。
- 对于 OpenNI 框架, 您需要 安装 开发 版本 和 PrimeSensor 模块。
- 对于 CUDA,您再次需要两个模块:最新的 CUDA 工具包和 CUDA 工具 SDK。根据您的操作系统,使用 32 位或 64 位设置,使用完整的选项下载并安装它们。
-
对于Qt框架,您需要自己构建二进制文件(除非您使用带有32位编译器的Microsoft Visual Studio 2008)。为此,请转到Qt下载页面。下载源文件(不是安装程序!!):
将其解压缩到一个漂亮且简短的命名目录中,例如 .然后你需要构建它。使用“开始”菜单搜索启动 Visual Studio 命令提示符 (2010) (或浏览“开始”菜单“所有程序 –> Microsoft Visual Studio 2010 –> Visual Studio Tools –> Visual Studio 命令提示符 (2010))。D:/OpenCV/dep/qt/
现在导航到提取的文件夹,并使用此控制台窗口进入其中。您应该有一个文件夹,其中包含 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 中。
按 Configure 按钮指定要使用的编译器(和 IDE)。请注意,如果您可以在不同的编译器之间进行选择,以制作 64 位或 32 位库。选择您在应用程序开发中使用的那个。
CMake 将启动,并根据您的系统变量尝试自动定位尽可能多的包。您可以在 WITH –> WITH_X 菜单点(其中 X 是包缩写)中修改要用于构建的包。以下是您可以打开或关闭的当前软件包列表:
S选择要使用的所有软件包,然后再次按下“配置”按钮。若要更轻松地概述生成选项,请确保二进制目录选择下的“分组”选项处于打开状态。对于某些包,CMake 可能无法找到所有必需的文件或目录。在这种情况下,CMake 将在其输出窗口(位于 GUI 底部)中抛出错误,并将其字段值设置为未找到常量。例如:
对于这些,您需要手动设置查询的目录或文件路径。在此之后,再次按“配置”按钮以查看您输入的值是否被接受。执行此操作,直到所有条目都正确,并且您看不到 GUI 的字段/值或输出部分的错误。现在我想强调一个你一定会喜欢的选项:启用 –> ENABLE_SOLUTION_FOLDERS。OpenCV 将创建许多项目,启用此选项将确保它们在“解决方案资源管理器”的目录中分类。如果你问我,这是一个必须有的功能。
此外,您需要选择要构建的 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 上的下拉菜单更改为另一个。
最后,您可以观察 bin 目录中构建的二进制文件:
对于文档,您需要在 HTML 文档的 doxygen 项目上显式发出构建命令。它将要求 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 库的构建目录。启动命令窗口并输入:
setx OpenCV_DIR D:\OpenCV\build\x64\vc14 (suggested for Visual Studio 2015 - 64 bit Windows)
setx OpenCV_DIR D:\OpenCV\build\x86\vc14 (suggested for Visual Studio 2015 - 32 bit Windows)
setx OpenCV_DIR D:\OpenCV\build\x64\vc15 (suggested for Visual Studio 2017 - 64 bit Windows)
setx OpenCV_DIR D:\OpenCV\build\x86\vc15 (suggested for Visual Studio 2017 - 32 bit Windows)
setx OpenCV_DIR D:\OpenCV\build\x64\vc16 (suggested for Visual Studio 2019 - 64 bit Windows)
setx OpenCV_DIR D:\OpenCV\build\x86\vc16 (suggested for Visual Studio 2019 - 32 bit Windows)
此处的目录是您拥有 OpenCV 二进制文件(提取或构建)的位置。您可以有不同的平台(例如 x64 而不是 x86)或编译器类型,因此请替换适当的值。在其中,您应该有两个名为 lib 和 bin 的文件夹。
如果你构建了静态库,那么你就完成了。否则,您需要将 bin 文件夹路径添加到系统路径。这是因为您将以 *“Dynamic-link 的形式使用 OpenCV 库 libraries“*(也称为 DLL)。其中存储了 OpenCV 库包含的所有算法和信息。操作系统仅在运行时按需加载它们。但是,要做到这一点,操作系统需要知道它们在哪里。系统 PATH 包含可在其中找到 DLL 的文件夹列表。将 OpenCV 库路径添加到其中,操作系统将知道如果他需要 OpenCV 二进制文件,该在哪里查找。否则,您将需要将使用的 DLL 复制到应用程序可执行文件 (exe) 旁边,以便操作系统找到它,如果您处理许多项目,这是非常不愉快的。为此,请再次启动 PathEditor 并添加以下新条目(在应用程序中单击鼠标右键以显示菜单):
%OPENCV_DIR%\bin
将其保存到注册表,即可完成。如果您更改了构建目录的位置,或者想要使用不同的构建来试用您的应用程序,您需要做的就是通过命令窗口中的 setx 命令更新OPENCV_DIR变量。
也可以参考下面教程:
OpenCV是一个功能强大的计算机视觉库,可用于各种图像和视频处理任务。本文将介绍如何在Windows系统下安装OpenCV 4.9.0库,并提供详细的步骤和注意事项。
1. 下载OpenCV库
首先,需要从OpenCV的官网(https://opencv.org/releases/)下载最新版本的OpenCV库。选择最新版本4.9.0的zip压缩包,下载后解压到本地,例如解压到D:/OpenCV4.9.0目录下。
2. 配置系统环境变量
为了让编译器正确的识别OpenCV库,需要在系统环境变量中添加OpenCV库文件路径。具体步骤如下:
- 在控制面板中打开“系统”菜单,点击“高级系统设置”;
- 进入“系统属性”窗口后,点击“环境变量”按钮;
- 在“系统变量”中找到“Path”变量,点击“编辑”按钮;
- 在Path变量的值的最后添加OpenCV库文件路径:“D:/OpenCV4.9.0/build/x64/vc15/bin”(注意:路径可能因个人安装路径不同而有差异),保存退出。
3. 安装Visual Studio
在Windows系统下使用OpenCV库需要配合使用Visual Studio的编译器,因此需要安装Visual Studio。在官网下载合适版本的Visual Studio安装包,安装完成后启动Visual Studio。
4. 新建工程并配置
首先,打开Visual Studio并新建一个空的Win32 Console Application工程(或其他适当类型的工程),然后按照下面的步骤进行配置:
- 点击“项目” -> “<工程名称>属性” -> “VC++目录”,在“包含目录”中添加OpenCV库的头文件路径:“D:/OpenCV4.9.0/include”;
- 在“库目录”中添加OpenCV库文件的路径:“D:/OpenCV4.9.0/build/x64/vc15/lib”(注意这里使用了之前添加的系统环境变量 PATH 中的路径),并将“平台”调整为“x64”;
- 在“链接器”->“输入”下添加OpenCV库文件名:“opencv_world490d.lib”(根据需要,你可以添加其他的库代码)。
完成上述步骤后,就可以使用OpenCV库进行图像或视频处理任务了,需要注意的是,在项目属性中,需要选择正确的版本信息,如使用X64版本开发则要选择“x64”选项。
5. 测试并运行
在完成上述操作后,需要测试一下OpenCV是否正确安装并可用。可以在工程中新建一个空函数main,并编写一些OpenCV的代码。例如,下面是一个简单的OpenCV代码段,用于显示一张图像:
#include <opencv2\core.hpp>
#include <opencv2\highgui.hpp>
using namespace cv;
int main() {
Mat img = imread("lena.jpg"); // 读取一张图像
imshow("Lena", img); // 显示图像
waitKey(0); // 等待键盘输入
return 0;
}
在代码中,读入lena.jpg图片,然后显示该图片,调用waitKey(0)函数来等待键盘输入,防止图像一闪而过。
最后,编译代码并运行,如果OpenCV库安装正确,应该能够正常显示图片,完成OpenCV4.9.0在Windows系统下的安装和配置。
参考文章:
1.《Installation in Windows》Bernát Gábor