图像处理与计算机视觉实践:基于OpenCV和Python
上QQ阅读APP看书,第一时间看更新

第1章 图像的基本操作

1.1 OpenCV简介

OpenCV是Open Source Computer Vision Library的缩写,它是一个开放源代码的计算机视觉库(代码仓库地址https://github.com/opencv)。OpenCV提供了2500多个传统和主流的、从基本到高级的计算机视觉算法及机器视觉算法,稳定而高效。其底层使用C/C++实现,具有Python、Java、JavaScript等语言的接口,且Python版本用户的数量在不断增长。

OpenCV于1999年由Intel(英特尔)公司发起,2000年在CVPR会议(Conference on Computer Vision and Pattern Recognition,国际计算机视觉与模式识别会议)上正式以BSD(Berkely Software Distribution,伯克利软件发行版)许可证授权发行。用户可以在教育研究、个人项目或者商业产品中免费使用OpenCV,也就是说,用户可以对OpenCV做任何操作,包括修改OpenCV的源代码、将OpenCV嵌入自己开发的软件中、销售包含OpenCV的软件等,唯一的约束是要在软件的文档或者说明中注明使用了OpenCV并附上OpenCV的协议。从2020年10月发布的4.5版本开始,OpenCV改用Apache 2.0许可证,Apache 2.0许可证除了提供与BSD许可证相同的许可,还有专利相关的条款。OpenCV的协议保证了计算机视觉技术快速的传播,让更多人从OpenCV中受益。

OpenCV最初的开发工作是由Intel俄罗斯团队负责的,几经变化后在2020年形成图1-1所示的分布式开发团队,由美国、俄罗斯、中国的3个研发中心和OpenCV社区共同维持OpenCV的发展。

图1-1 OpenCV分布式开发团队

虽然OpenCV的底层是用C++实现的,但目前使用OpenCV Python接口的用户数量已超过使用其C++接口的用户数量。除了易于编写和调试,Python接口的OpenCV库安装起来也非常简单,在终端输入下面的命令即可安装OpenCV:

# 安装opencv库
pip install opencv-python
 
# 或者
# 同时安装opencv和opencv_contrib
pip install opencv-contrib-python

本章及后面的章节将结合OpenCV来对图像处理和计算机视觉的基础算法与一些主流应用进行介绍,读者可通过使用OpenCV实现算法并观察结果,来全面理解这些算法知识,并学会应用理论知识。