第1章 OpenCV入门
OpenCV是一个开源的计算机视觉库,1999年由英特尔的Gary Bradski启动。Bradski在访学过程中注意到,在很多优秀大学的实验室中,都有非常完备的内部公开的计算机视觉接口。这些接口从一届学生传到另一届学生,对于刚入门的新人来说,使用这些接口比重复造轮子方便多了。这些接口可以让他们在之前的基础上更有效地开展工作。OpenCV正是基于为计算机视觉提供通用接口这一目标而被策划的。
由于要使用计算机视觉库,用户对处理器(CPU)的要求提升了,他们希望购买更快的处理器,这无疑会增加英特尔的产品销量和收入。这也许就解释了为什么OpenCV是由硬件厂商而非软件厂商开发的。当然,随着OpenCV项目的开源,目前其已经得到了基金会的支持,很大一部分研究主力也转移到了英特尔之外,越来越多的用户为OpenCV做出了贡献。
OpenCV库由C和C++语言编写,涵盖计算机视觉各个领域内的500多个函数,可以在多种操作系统上运行。它旨在提供一个简洁而又高效的接口,从而帮助开发人员快速地构建视觉应用。
OpenCV更像一个黑盒,让我们专注于视觉应用的开发,而不必过多关注基础图像处理的具体细节。就像PhotoShop一样,我们可以方便地使用它进行图像处理,我们只需要专注于图像处理本身,而不需要掌握复杂的图像处理算法的具体实现细节。
本章将介绍OpenCV的具体配置过程及基础使用方法。
1.1 如何使用
Python的开发环境有很多种,在实际开发时我们可以根据需要选择一种适合自己的。在本书中,我们选择使用Anaconda作为开发环境。本节简单介绍如何配置环境,来实现在Anaconda下使用基于Python语言的OpenCV库。
1.Python的配置
在本书中,我们使用的是Python 3版本。虽然Python 2和Python 3有很多相同之处,以至于Python 2的读者也可以使用本书,但还是要说明一下,本书直接面向的版本是Python 3。
可以在Python的官网上(https://www.python.org/downloads/)下载Python 3的解释器。在该网页顶部已经指出了最新的版本,例如“Download Python 3.7.0”就表示当前(2018年10月9日)的最新版本是Python 3.7.0,单击“Download Python 3.7.0”,就会开始下载解释器软件。
如果想安装其他版本,可以向下拖动鼠标,你将看到一个滚动页面,其中显示了一个列表集,其中列出了不同的安装包,具体选择哪种安装包依赖于两个因素:
● 操作系统,例如Windows、macOS、Linux等。
● 处理器位数,例如32位或者64位。
根据自己的计算机配置,在列表集中选择对应的安装包下载。
下载完成后,按照提示步骤完成安装即可。
2.Anaconda的配置
可以在Anaconda的官网上(https://www.anaconda.com/download/)下载Anaconda。在下载页顶部指出了当前的最新版本。
如果想安装其他版本,可以在下载页内根据实际情况选择。具体选择哪种安装包依赖于三个因素:
● Python的版本,例如Python 2.7或者Python 3.7等。
● 操作系统,例如Windows、macOS、Linux等。
● 处理器位数,例如32位或者64位。
根据自己的环境配置,在下载页中选择对应的安装包下载。
下载完成后,按照提示步骤完成安装即可。
3.OpenCV的配置
可以从官网下载OpenCV的安装包,编译后使用;也可以直接使用第三方提供的预编译包安装。
在本书中,我们选择由PyPI提供的OpenCV安装包,可以在https://pypi.org/project/opencv-python/上面下载最新的基于Python的OpenCV库。同样,下载页顶部指出了当前的最新版本。
如果想安装其他版本,可以在Download files栏目内根据实际情况选择。具体选择哪种安装包依赖于三个因素:
● Python的版本,例如Python 2.7或者Python 3.7等。
● 操作系统,例如Windows、macOS、Linux等。
● 处理器位数,例如32位或者64位。
完成下载后,在Anaconda Prompt内使用pip install完整路径文件名完成安装。例如,假设文件存储在D:\anaconda\Lib目录下面,则要使用的语句为:
>>pip install D:\anaconda\Lib\opencv_python-3.4.3.18-cp37-cp37m-win_amd64.whl
安装完成后,可以在Anaconda Prompt内使用conda list语句查看安装是否成功。如果安装成功,就会显示安装成功的OpenCV库及对应的版本等信息。需要注意,不同安装包的名称及版本号可能略有差异。例如,图1-1中的包列表显示了系统内配置了OpenCV其他版本的情况,该图说明在当前系统内配置的是OpenCV 3.4.2版本。
图1-1 包列表
这里主要介绍了如何在Windows系统下对环境进行配置,如果需要配置其他操作系统下的环境,请参考官网的具体介绍。