1.1 什么是图像处理及图像处理的应用
什么是图像?它是如何存储在计算机里的?用Python编程如何处理?
1.1.1 什么是图像以及图像是如何存储的
从概念上讲,形式最简单的图像(单通道,例如二值或单色,灰度或黑白图像)是一个二维函数f(x,y),即将坐标点映射为与点的强度/颜色相关的整数/实数。点称为像素或图像基本单位(图像元素)。一幅图像可以有多个通道,例如,对于彩色RGB图像,可以使用颜色表示三通道——红、绿、蓝。彩色RGB图像的像素点(x,y)可以表示为三元组(rx,y, gx,y, bx,y)。
为了能够在计算机上描述图像,对于图像f(x,y),我们必须在空间和振幅两方面对其进行数字化。空间坐标(x,y)的数字化称为图像采样,振幅数字化称为灰度量化。在计算机中,通常将像素通道所对应的值表示为整数(0~255)或浮点数(0~1)。可以将图像存储为不同类型(格式)的文件。每个文件通常包括元数据和多维数组的数据(例如,二值或灰度图像的二维数组,RGB和YUV彩色图像的三维数组)。图1-1显示了如何将图像数据存储为不同类型图像的数组。可以看到,对于灰度图像,用“宽度×高度”(二维数组)的模式足以存储;而对于RGB图像,则需要用“宽度×高度×3”(三维数组)的模式存储。
图1-1 图像的存储
二值图像、灰度图像和RGB图像如图1-2所示。
图1-2 二值图像、灰度图像和RGB图像
本书重点讨论图像数据的处理,用Python库实现从图像中提取数据,并运用算法进行图像处理。样本图像均取自互联网——伯克利图像分割数据集、基准数据集和USC-SIPI图像数据库,其中大多是用于图像处理的标准图像。
1.1.2 什么是图像处理
图像处理是指在计算机上使用算法和代码自动处理、操控、分析和解释图像,广泛应用于诸多学科和领域,如电视、摄影、机器人、遥感、医学诊断和工业检验。像大众所熟知的Facebook和Instagram社交网站,都面临着用户每天上传大量图片的情况,需要使用图像处理算法或对图像处理算法进行创新来处理上传的图片。
在本书中,我们用Python包来处理图像:首先,用一组库来做经典的图像处理——提取图像数据,用库函数的算法将数据转换为预处理、增强、复原、表示(用描述符)、分割、分类、检测和识别(对象),从而更好地分析、理解和解释数据;其次,我们用另一组库进行基于深度学习的图像处理——这种技术近年来变得非常热门。
1.1.3 图像处理的应用
图像处理的典型应用包括医学/生物领域的应用(如X射线和CT扫描)、计算摄影(Photoshop)、指纹认证、人脸识别等。