安装OpenCV以及运行示例很有趣,但是在这一阶段,我们希望以自己的方式来尝试一下。本章将介绍OpenCV的I/O功能,还将讨论项目的概念,并开始对该项目进行面向对象设计,并在后续章节中继续对该项目进行充实。
首先,我们来看一下I/O的功能和设计模式,我们将以制作三明治的方式构建项目——由外而内。面包切片和涂抹,或者端点和黏合,都是添加馅料和算法之前的工作。之所以选择这种方式是因为计算机视觉通常是外向的——它专注于计算机之外的真实世界——我们希望通过一个共同接口将所有的后续算法工作都应用于真实世界。
本章将介绍以下主题:
·从图像文件、视频文件、摄像头设备或内存中的原始数据字节读取图像。
·将图像写入图像文件或视频文件。
·在NumPy数组中处理图像数据。
·在窗口中显示图像。
·处理键盘和鼠标输入。
·实现基于面向对象设计的应用程序。