Python+OpenCV实用案例应用教程:安装OpenCV
第1章安装OpenCV拿起这本教程的时候,你可能就已经对OpenCV有所了解了。你也许在科幻小说中看到过其中的一些功能,比如训练人工智能模型来识别它通过摄像头看到的所有东西。如果这是你的兴趣,那你就不会失望!OpenCV是开源计算机视觉(Open Source Computer Vision)的缩写。这是一个免费计算机视觉库,允许你操作图像和视频来完成各种任务,从显示网络摄像头的视频帧到教机器人识
第1章
安装OpenCV
拿起这本教程的时候,你可能就已经对OpenCV有所了解了。你也许
在科幻小说中看到过其中的一些功能,比如训练人工智能模型来识别
它通过摄像头看到的所有东西。如果这是你的兴趣,那你就不会失
望!OpenCV是开源计算机视觉(Open Source Computer Vision)的缩
写。这是一个免费计算机视觉库,允许你操作图像和视频来完成各种
任务,从显示网络摄像头的视频帧到教机器人识别真实物体。
通过本教程,你将学会基于Python编程语言来利用OpenCV的巨大潜
力。Python是一种优雅的语言,学习曲线相对较浅,但功能却非常强
大。本章是关于如何安装Python 3、OpenCV 4及其依赖项的快速指
南。作为OpenCV的一部分,我们将安装opencv_contrib模块,这些模
块提供了由OpenCV社区(而不是核心开发团队)维护的附加功能。安
装完成后,我们还将浏览一下OpenCV的Python示例脚本和文档。
本章将介绍以下相关库:
·NumPy:这个库是OpenCV的Python绑定的一个依赖项。它提供
了包括高效数组在内的数值计算功能。
·SciPy:这个库是一个科学计算库,与NumPy密切相关。
OpenCV不需要这个库,但是如果你希望操作OpenCV图像中的数据,
那么这个库非常有用。
·OpenNI 2:这个库是OpenCV的一个可选依赖项。添加了对某
些深度摄像头(如华硕的Xtion PRO)的支持。
OpenCV 4已经放弃了对OpenNI 1以及所有OpenNI 1模块的支
持,比如Sensor-Kinect。这一变化意味着在OpenCV 4中可能不再支持
像微软Kinect的Xbox版本之类的一些老式深度摄像头。
就本教程而言,可以认为OpenNI 2是可选的。该内容只贯穿于第4
章,在其他章节或附录中并没有用到OpenNI 2。
本教程重点关注当前OpenCV库的最新版本OpenCV 4。有关
OpenCV的更多信息可以在http://opencv.org中找到,官方文档可以在
http://docs.opencv.org/master中找到。
本章将介绍以下主题:
·OpenCV 4有哪些新特性。
·选择和使用合适的安装工具。
·运行示例。
·查找文档、帮助和更新。
1.1 技术需求
本章假设你正在使用下列操作系统中的一种:
·Windows 7 SP1或者更高版本。
·macOS 10.7(Lion)或者更高版本。
·Debian Jessie或者更高版本,或者类似于下面的衍生版本:
·Ubuntu 14.04或者更高版本。
·Linux Mint 17或者更高版本。
为了编辑Python脚本或者其他文本文件,本教程作者只是建议:你
应该有一个好的文本编辑器。例如:
·Windows的Notepad++。
·macOS的BBEdit(免费版)。
·Linux上GNOME桌面环境的GEdit。
·Linux上KDE Plasma桌面环境的Kate。
除了操作系统之外,本章没有其他先决条件。
1.2 OpenCV 4有哪些新特性
如果你是一名资深OpenCV使用者,那么在决定安装OpenCV 4之
前,你可能想了解更多有关OpenCV 4的变化。下面是其中的一些亮
点:
·已经将OpenCV的C++实现更新到C++11。OpenCV的Python绑
定封装了C++实现,因此对于Python用户而言,即使不直接使用
C++,也可以从这次更新中获得一些性能优势。
·移除了OpenCV已弃用的C实现以及C实现已弃用的Python绑
定。
·实现了许多新的优化。现有的OpenCV 3项目除了更新OpenCV
版本之外,无须进一步更改就可以利用这些优化。对于OpenCV
C++项目,可用名为G-API的全新优化管道,但是OpenCV的Python绑
定目前并不支持这个优化管道。
·OpenCV的DNN模块提供了许多新的机器学习模型。
·移除了用于训练Haar级联和LBP级联(检测自定义对象)的工
具。有人提议在OpenCV 4的未来更新中重新实现这些工具,并支持其
他模型。
·支持KinectFusion算法(使用微软Kinect 2摄像头进行三维重
建)。
·新增了稠密光流的DIS算法。
·新增了一个二维码检测和解码模块。
无论你是否使用过OpenCV之前的版本,本教程都将作为OpenCV 4的
通用指南,在后续章节中将会特别关注其中的一些新特性。
1.3 选择和使用合适的安装工具
根据操作系统以及想要的配置,我们可以自由选择各种安装工
具。
无论选择哪种操作系统,Python都提供了对安装开发环境非常有
用的一些内置工具,包括名为pip的包管理器以及名为venv的虚拟环境
管理器。本章的一些说明主要针对pip,如果想了解venv,请参考
https://docs.python.org/3/library/venv.html处的官方Python文
档。
如果你打算维护多个可能具有冲突依赖关系的Python项目,
那么应该考虑使用venv——例如,依赖于OpenCV不同版本的项目。
venv的每个虚拟环境都有自己的一套安装库,我们可以在这些环境之
间切换,无须重新安装任何东西。在给定的虚拟环境中,可以使用pip
安装库,在某些情况下也可以使用其他工具安装库。
我们来对可用于Windows、macOS、Ubuntu以及其他类UNIX系统的
安装工具进行概述。
1.3.1 在Windows上安装
Windows没有预先安装Python。但是,Python提供了一个安装向导
和一个名为pip的包管理器,可以让我们轻松安装现成的NumPy、SciPy
和OpenCV。或者,我们可以从源代码构建OpenCV,以便启用非标准特
性,比如通过OpenNI 2支持深度摄像头。OpenCV的构建系统使用CMake
来配置系统并使用Visual Studio进行编译。
在做其他事情之前,首先来安装Python。访问
https://www.python.org/getit/下载并运行Python 3.8安装程序。尽
管OpenCV也可以使用32位的Python,但是你可能想要64位的Python安
装程序。
一旦安装了Python,就可以使用pip安装NumPy和SciPy了。打开命
令提示符,运行下面的命令:
现在,我们必须确定我们是需要一个现成的OpenCV(不支持深度
摄像头)还是需要一个自定义OpenCV(支持深度摄像头)。接下来将
介绍这些备选方案。
1.使用现成的OpenCV包
OpenCV包含opencv_contrib模块,可以作为一个pip包来安装。这
和运行以下命令一样简单:
如果希望OpenCV安装包含非免费的内容(如专利算法),那么可
以运行以下命令:
如果打算发布依赖于OpenCV非免费内容的软件,你应该自己
调研适用于特定国家和特定用例的专利和许可问题。OpenCV的非免费
内容包括专利SIFT和SURF算法的实现,这些内容将在第6章中进行介
绍。
你可能会发现其中一个pip包提供了你目前想要的所有OpenCV特
性。另外,如果你打算使用深度摄像头,或者想要了解OpenCV自定义
构建的一般过程,那么不应该安装OpenCV的pip包,而应该从源代码构
建OpenCV。
2.从源代码构建OpenCV
如果希望支持深度摄像头,那么还应该安装OpenNI 2,它是带有
安装向导的一组预编译二进制文件。然后,我们必须使用CMake和
Visual Studio从源代码构建OpenCV。
要获取OpenNI 2,请访问https://structure.io/openni,并根据
Windows和系统架构(x64或者x86)下载最新版本的压缩文件。将其解
压,得到一个安装程序文件,如OpenNI-Windows-x64-2.2.msi。运行
安装程序。
现在,我们来安装Visual Studio。要构建OpenCV 4,我们需要
Visual Studio 2015或者更高版本。如果还没有合适的版本,可访问
https://visualstudio.microsoft.com/downloads/,下载并运行下面
列出的安装程序之一:
·免费的Visual Studio 2019社区版。
·Visual Studio 2019付费版,试用期为30天。
在安装过程中,确保勾选所有可选的C++组件。安装完成后,重新
启动。
对于OpenCV 4,构建配置过程需要CMake 3或以上版本。访问
https://cmake.org/download/,下载并安装适用于自己的架构(x64
或x86)的CMake最新版本的安装程序,然后运行它。在安装过程中,
选择“Add CMake to the system PATH for all users”或者“Add
CMake to the system PATH for current user”。
在这个阶段,我们已经为OpenCV自定义构建安装了依赖项并建立
了环境。现在,我们需要获取OpenCV源代码,配置并构建它。
这可以通过以下步骤来完成:
(1)访问https://opencv.org/releases/,获取Windows的最新
OpenCV下载程序。它是一个自解压的压缩文件。运行它,在出现命令
提示符时,输入任意目标文件夹,我们将其命名为
<opencv_unzip_destination>。在解压过程中,会在
<opencv_unzip_destination>\opencv中创建一个子文件夹。
(2)访问
https://github.com/opencv/opencv_contrib/releases,下载
opencv_contrib模块的最新压缩文件。把这个文件解压到任意目标文
件夹,我们将其命名为<opencv_contrib_unzip_destination>。
(3)打开命令提示符,运行以下命令,生成构建文件将放入的另
一个文件夹:
把目录更改为build文件夹:
4)现在,我们已经准备好使用CMake的命令行界面来配置构建
了。要理解所有的选项,可以阅读
<opencv_unzip_destination>\opencv\CMakeLists.txt中的代码。但
是,就本教程而言,我们只需要使用一些选项,这些选项将赋予我们带
有Python绑定、opencv_contrib模块、非免费内容,并通过OpenNI 2
支持深度摄像头的一个发布构建。根据Visual Studio版本和目标架构
(x64或x86),一些选项稍有不同。要创建适用于Visual Studio
2019的64位(x64)解决方案,运行以下命令(但是请用实际路径替代
<opencv_contrib_unzip_destination>和
<opencv_unzip_destination>):
要创建适用于Visual Studio 2019的32位(x86)解决方案,运行
以下命令(但是请用实际路径替代
<opencv_contrib_unzip_destination>和
<opencv_unzip_destination>):
在运行上述命令时,它将打印有关找到或者丢失的依赖项的信
息。OpenCV有很多可选的依赖项,所以不要因丢失依赖项而惊慌。但
是,如果没有成功完成构建,可以尝试安装丢失的依赖项。(很多依
赖项都可以作为预构建的二进制文件使用。)然后,重复这个步骤。
(5)CMake将会在<opencv_build_folder>/OpenCV.sln中生成一
个Visual Studio解决方案文件。在Visual Studio中打开它。请确保
在Visual Studio窗口顶部附近工具栏的下拉列表中勾选了
“Release”配置(而不是“Debug”配置)。(很可能不在Debug配置
中构建OpenCV的Python绑定,因为大多数Python发行版本都不包含调
试库。)访问“BUILD”菜单,选择“Build Solution”。查看窗口底
部“Output”面板中的构建信息,等待构建完成。
(6)在这个阶段,已经构建好了OpenCV,但是还没有把OpenCV安
装到Python可以找到的位置。在进行下一步之前,请确保Python环境
没有包含冲突的OpenCV构建。找到并删除Python的DLL文件夹和
site_packages文件夹中的所有OpenCV文件。例如,这些文件可能匹配
以下模式:C:\Python37\DLLs\opencv_*.dll、
C:\Python37\Lib\site-packages\opencv和C:\Python37\Lib\site-
packages\cv2.pyd。
(7)最后,安装OpenCV的自定义构建。CMake已经生成了一个
INSTALL项目作为OpenCV.sln Visual Studio解决方案的一部分。查看
Visual Studio窗口右侧的“Solution Explorer”面板,找到
“CMakeTargets | INSTALL”项目,右键单击,并从“context”菜单
选择“Build”。同样,查看窗口底部“Output”面板中的构建消息,
并等待构建完成。然后,退出Visual Studio。编辑系统的Path变量,
并添加;<build_folder>\install\x64\vc15\bin(对于64位构建)或
者;<build_folder>\install\x86\vc15\bin(对于32位构建)。这个
文件夹是INSTALL项目放置OpenCV DLL文件(Python在运行时动态加载
的库文件)的地方。OpenCV Python模块位于诸如
C:\Python37\Lib\site-packages\cv2.pyd这样的路径下。Python将在
此找到它,因此你不需要将其添加到Path中。注销并重新登录(或者
重新启动)。
上述指令指的是编辑系统的Path变量。也可以在控制面板的
“Environment Variables”窗口中按照如下步骤完成这项任务:
(1)单击“开始”菜单并启动控制面板。导航到“System and
Security”→“System”→“Advanced system settings”。单击
“Environment Variables...”按钮。
(2)现在,在“System Variables”下,选择“Path”,单击
“Edit…”按钮。
(3)根据指示进行更改。
(4)要应用这些更改,请单击所有的“OK”按钮(直到回到控
制面板的主窗口)。
(5)然后,注销并重新登录(或者重新启动)。
现在,我们已经在Windows上完成了OpenCV的构建过程,而且拥有
了适合本教程所有Python项目的一个自定义构建。
今后,如果想把OpenCV源代码更新到新版本,请从下载
OpenCV开始,重复上述所有步骤。
1.3.2 在macOS上安装
macOS预装了Python的发行版(根据苹果系统内部需求定制的)。
为了开发我们自己的项目,我们应该独立安装Python,并确保它与系
统的Python需求不冲突。
对于macOS,可能有一些方法可获取标准版Python 3、NumPy、
SciPy和OpenCV。所有方法最终都需要对OpenCV使用Xcode命令行工具
从源代码进行编译。但是,根据不同的方法,这项任务可以通过第三
方工具以各种方式自动完成。我们可以使用一个自制程序的包管理器
查看这种方法。包管理器可以潜在地完成CMake能够完成的所有内容,
此外,它还可以帮助我们解决依赖项,并将开发库与系统库进行分
离。
MacPorts是macOS的另一种流行的包管理器。但是,在编写本
教程时,MacPorts并不提供OpenCV 4或者OpenNI 2的包,因此本教程中将
不会使用这个包管理器。
在继续下一步之前,要确保正确地安装了Xcode命令行工具。打开
终端,运行以下命令:
同意许可协议以及其他提示内容。安装程序应该运行到完成。现
在,我们就有了自制程序需要的编译器。
1.使用现成软件包的自制程序
从已经安装了Xcode及其命令行工具的系统开始,下面的步骤将通
过自制程序完成OpenCV的安装:
(1)打开终端,运行以下命令安装自制程序:
(2)自制程序不会将可执行文件自动放入PATH中。为此,创建或
编辑~/.profile文件,在代码顶部添加下面这一行内容:
保存文件,运行以下命令刷新PATH:
请注意,现在,由自制程序安装的可执行文件优先于由系统安装
的可执行文件。
(3)对于自制程序的自诊断报告,运行下面这条命令:
遵循它给出的所有故障排除建议。
(4)现在,更新自制程序:
5)运行下面这条命令,安装Python 3.8:
6)现在,我们想要安装拥有opencv_contrib模块的OpenCV。同
时,我们想要安装诸如NumPy之类的依赖项。为此,运行下面这条命
令:
自制程序不提供安装带有OpenNI 2支持的OpenCV的选项。自
制程序总是安装拥有opencv_contrib模块的OpenCV,包括专利SIFT和
SURF算法(见第6章)这样的非免费内容。如果打算发布依赖于
OpenCV非免费内容的软件,你应该自己调研适用于特定国家和特定用
例的专利和许可问题。
(7)同样,运行下面这条命令,安装SciPy:
现在,我们就拥有了在macOS上基于Python开发OpenCV项目需要的
所有内容。
2.使用自定义软件包的自制程序
如果你需要自定义一个软件包,那么自制程序让编辑现有软件包
定义变得很容易:
实际上,软件包定义是用Ruby编程语言编写的脚本。可以在网址
为https://github.com/Homebrew/brew/blob/master/docs/Formula-
Cookbook.md的自制程序维基页面上查找有关编辑包定义的技巧。脚本
还可以指定Make或者CMake的配置标志,等等。
要查看哪些CMake配置标志与OpenCV相关,请参考
https://github.com/opencv/opencv/blob/master/CMakeLists.txt在GitHub
上的官方OpenCV库。
在对Ruby脚本进行编辑之后,请对其进行保存。
自定义包可看作常规包。例如,可以按照如下方式安装自定义
包:
1.3.3 在Debian、Ubuntu、Linux Mint以及类似系统
上安装
Debian、Ubuntu、Linux Mint以及与Linux相关的发布平台使用
apt包管理器。在这些系统上,安装用于Python 3以及包括NumPy和
SciPy在内的许多Python模块的包是一件很容易的事情。还可以通过
apt获取OpenCV包,但是在编写本教程时,这个包还没有更新到OpenCV
4。但是,我们可以从Python的标准包管理pip中获取OpenCV 4(不支
持深度摄像头)。也可以从源代码构建OpenCV 4。从源代码构建时,
OpenCV可以通过OpenNI 2支持深度摄像头,OpenNI 2可以作为带有安
装脚本的一组预编译二进制文件。
不管通过什么方式获取OpenCV,都要首先更新apt,这样就可以获
取最新的包。打开终端,运行下面这条命令:
更新apt之后,运行下面这条命令,为Python 3安装NumPy和
SciPy:
同样,我们可以使用Ubuntu软件中心,它是apt包管理器的图
形前端。
现在,我们必须决定是要OpenCV的一个现成构建(不支持深度摄
像头),还是一个自定义构建(支持深度摄像头)。下面将介绍这些
备选方案。
1.使用现成的OpenCV包
OpenCV包括opencv_contrib模块在内,可以作为一个pip包进行安
装。这就像运行下面的命令一样简单:
如果希望OpenCV安装包含专利算法之类的非免费内容,那么可以
运行下面这条命令:
如果打算发布基于OpenCV非免费内容的软件,你应该自己调
研适用于特定国家和特定用例的专利和许可问题。OpenCV的非免费内
容包括专利SIFT和SURF算法的实现,我们将在第6章中进行介绍。
你可能会发现其中一个pip包提供了你目前想要的所有OpenCV特
性。另外,如果你打算使用深度摄像头,或者想要了解OpenCV自定义
构建的一般过程,那么不应该安装OpenCV的pip包,而应该从源代码构
建OpenCV。
2.从源代码构建OpenCV
要从源代码构建OpenCV,我们需要一个C++构建环境和CMake构建
配置系统。具体来说,我们需要CMake 3。在Ubuntu 14.04、Linux
Mint 17及其相关系统上,cmake包是指CMake 2,但是还有一个最新的
cmake 3包可供使用。在这些系统上,运行下面这些命令,以确保安装
了所需的CMake版本及其他构建工具:
另外,在最新的操作系统上,cmake包指CMake 3,我们可以简单
地运行下面这条命令:
除了OpenCV的构建过程外,CMake还需要访问网络下载附加依赖
项。如果系统使用了代理服务器,那么请确保正确配置了代理服务器
的环境变量。具体来说,CMake依赖于http_proxy和https_proxy环境
变量。要定义这些环境变量,可以编辑~/.bash_profile脚本,添加下
面这些行的内容(请修改它们,以使它们与自己的代理服务器URL和端
口号相匹配):
如果不能确定系统是否使用了代理服务器,这可能就没有用
了,那么可以忽略这个步骤。
要构建OpenCV的Python绑定,我们需要安装Python 3开发头文
件。要安装这些,运行下面这条命令:
要从典型的USB网络摄像头捕捉帧,OpenCV依赖于Linux视频
(V4L)。在大多数系统上,V4L是预先安装的,但是万一没有安装的
话,请运行下面这条命令:
如前所述,要支持深度摄像头,OpenCV依赖于OpenNI 2。访问
https://structure.io/openni,下载适用于Linux和自己的系统架构
(x64、x86或者ARM)的OpenNI 2最新压缩文件。将其解压到任意目标
地址(命名为<openni2_unzip_destination>)。运行以下命令:
上述安装脚本将配置系统,以便支持USB设备之类的深度摄像头。
而且,脚本创建引用<openni2_unzip_destination>内库文件的环境变
量。因此,如果之后移除<openni2_unzip_destination>的话,你将需
要再次运行install.sh。
现在,我们已经安装了构建环境变量和依赖项,可以获取并构建
OpenCV的源代码了。为此,请执行以下步骤:
(1)访问https://opencv.org/releases/,下载最新源代码包。
将其解压到任意目标文件夹(命名为
<opencv_unzip_destination>)。
(2)访问
https://github.com/opencv/opencv_contrib/releases,下载
opencv_contrib模块的最新源代码包。将其解压到任意目标文件夹
(命名为<opencv_contrib_unzip_destination>)。
(3)打开终端。运行以下命令,创建将要放置OpenCV构建文件的
一个目录:
切换到新创建的目录:
(4)现在,我们可以使用CMake生成OpenCV的构建配置。这个配
置过程的输出将是一组Makefile,它们是可以用于构建和安装OpenCV
的脚本。
<opencv_unzip_destination>/opencv/sources/CMakeLists.txt文件
中定义了OpenCV的一组完整的CMake配置选项。对本教程而言,我们只关
心与OpenNI 2支持、Python绑定、opencv_contrib模块和非免费内容
相关的选项。通过运行以下命令配置OpenCV:
(5)最后,运行以下命令,解析新生成的Makefile,从而构建并
安装OpenCV:
至此,我们已经在Debian、Ubuntu,或者类似的系统上完成了
OpenCV构建过程,而且我们还有适合本教程所有Python项目的一个自定
义构建。
1.3.4 在其他类UNIX系统上安装
在其他类UNIX系统上,包管理器和可用包可能不同。请查阅包管
理器文档,并搜索名称中包含opencv的包。请记住,OpenCV及其
Python绑定可能被拆分成多个包。
另外,查找由系统的提供者、库的维护者或者由社区发布的所有
安装说明。由于OpenCV使用摄像头驱动程序和媒体编解码器,因此在
多媒体支持较差的系统上让其所有功能正常工作可能会很棘手。在某
些情况下,为了兼容,可能需要重新配置或者重新安装系统包。
如果OpenCV有可用的软件包,那么请检查它们的版本号。对于本
教程,推荐使用OpenCV 4。此外,检查这些包是否通过OpenNI 2提供对
Python绑定和深度摄像头的支持。最后,检查开发人员社区中是否有
人在使用这些包时报告了成功或者失败情况。
相反,如果想要从源代码完成OpenCV的自定义构建,参考1.3.3节
关于Debian、Ubuntu和类似系统的安装步骤,并根据包管理器和其他
系统上的包调整这些步骤,可能会有所帮助。
1.4 运行示例
运行一些示例脚本是测试是否正确安装了OpenCV的一种好方法。
OpenCV的源代码存档文件中包含了一些示例。如果还没有获取源代
码,请访问https://opencv.org/releases/并下载其中一个存档文
件:
·对于Windows,下载最新的存档文件,标签为Windows。这是一
个自解压压缩文件。运行它,出现提示时,输入任意目标文件夹(命
名为<opencv_unzip_destination>)。在
<opencv_unzip_destination>/opencv/samples/python中找到Python示例。
·对于其他系统,下载最新存档文件,标签为Sources。它是一个
压缩文件。将其解压到任意目标文件夹(命名为
<opencv_unzip_destination>)。在
<opencv_unzip_destination>/samples/python中找到Python示例。
一些示例脚本需要命令行参数。但是,下面的脚本(以及其他脚
本)应该可以在没有任何参数的情况下工作:
·hist.py:这个脚本显示一张照片。按下A、B、C、D或者E查看
照片的变化,以及相应的颜色直方图或者灰度值直方图。
·opt_flow.py:这个脚本显示一个网络摄像头回传信号,提供光流
叠加可视化或者运动方向。对着摄像头慢慢挥手,看看效果。按下1或
者2选择可视化。
要退出一个脚本,请按Esc(不是Windows的关闭按钮)。
如果遇到“ImportError:No module named cv2”消息,那么这就
意味着我们正在从一个对OpenCV一无所知的Python运行脚本。对此,
有两种可能的解释:
·OpenCV安装过程中的一些步骤可能失败或者丢失了。返回并查
看这些步骤。
·如果机器上安装有多个Python,那么我们可能正在使用错误的
Python版本来启动脚本。例如,在macOS上,可能已经为自制Python安
装了OpenCV,但是我们却正在使用Python的系统版本运行脚本。返回
并检查有关编辑系统PATH变量的安装步骤。此外,试着使用以下命令
从命令行手动启动脚本:
还可以试试下面的命令:
作为选择不同Python安装的另一种可能方法,请尝试着编辑示例
脚本,以删除#!行。这些行可能显式地将脚本与错误的Python安装
(特定安装)联系起来。
1.5 查找文档、帮助和更新
可以在http://docs.opencv.org/找到OpenCV的文档,既可以在线
阅读也可以将其下载后离线阅读。如果在飞机上或者其他没有网络访
问的地方编写代码,你肯定希望保留文档的离线副本。
该文档包括OpenCV的C++API及其Python API组合的API引用。在查
找类或者函数时,请务必阅读Python标题下的内容。
OpenCV的Python模块命名为cv2。在cv2中的2与OpenCV的版
本号无关,我们使用的是OpenCV 4。历史上,有一个名为cv的Python
模块封装了OpenCV的一个已经过时的C版本。在OpenCV 4中已经不存
在任何cv模块。但是OpenCV文档有时会错误地将模块命名为cv(而不
是cv2)。请记住,在OpenCV 4中,正确的Python模块名称始终是
cv2。
如果文档中没有你的问题的答案,请试着寻求OpenCV社区的帮
助。在以下网站,可以找到对你有帮助的人:
·OpenCV论坛:https://answers.opencv.org/questions/。
·Adrian Rosebrock网站:http://www.pyimagesearch.com/。
·约瑟夫·豪斯的教程及其演示文稿网站:
http://nummist.com/opencv/。
最后,如果你是一名高级用户,想尝试最新(不稳定的)OpenCV
源代码中的新特性、bug修复和样例脚本的话,请通过网址
https://github.com/opencv/opencv/查看该项目的库。
1.6 本章小结
目前为止,我们应该已经安装了一个OpenCV,可满足本教程中所描
述的各种项目的需求。根据选取的方法,我们还可能有一组工具和脚
本,可用于重新配置和重新安装OpenCV,以满足未来的需求。
现在,我们还知道了可以在哪里找到OpenCV的Python示例。这些
示例包括的各种功能不在本教程讨论的范围内,但是这些内容非常实
用,可以作为附加学习资源。
在第2章,我们将掌握OpenCV API最基本的功能,即显示图像和视
频、通过网络摄像头抓取视频,以及处理基本的键盘和鼠标输入。

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)