图像数据的表示与基本运算
数字图像与数字图像处理
- 模拟图像:可以理解为直接观测到的图像,例如生物或机械成像系统中直接获取的图像,没有经过采样和量化
- 数字图像:将模拟图像进行离散化、数字化得到的图像,可以方便计算机处理
- 数字图像处理:又称为计算机图像处理,是一种利用计算机对数字图像进行分析、处理和加工的技术
图像文件格式
图像文件格式由“文件头”及“图像数据”组成
“文件头”的结构及内容由创建改图像文件格式的公司或团体决定
图像类型与图像数据
图像类型
- 矢量图:数学上定义为一系列由线连接的点,矢量文件中的图形元素称为对象。每个对象都是一个自成一体的实体,它具有颜色、形状、轮廓、大小和屏幕位置等属性
- 位图:位图也称作”点阵图”或“栅格图”,它的特点是整幅画由许多的像素点组成,计算机会将图片的每个像素点进行保存
RGB真彩色图像
- RGB真彩色图像每个像素的颜色,用:“红”、“绿”、“蓝”三个分量描述。每个分量采用“8位无符号整数”进行数字化,共24位组合,因此能够产生种颜色。
- 像素的“颜色分量”又称“颜色通道”、“颜色平面”
- Python语言中,用一个“M * N * 3”的NumPy“三维数组”来保存RGB真彩色图像数据
- RGB - >(Red、Green、Blue)
索引图像
- 索引图像为每个像素分配一个“颜色索引值”,同时构造一个“颜色索引表”,又称“调色板palette”
- 颜色映射表是一个“P行 * 3列”的二维数组,每种颜色占用一行,以RGB分量值定义该种颜色,P为颜色映射表行数,也是其能够提供的颜色种类数量
- 根据像素的颜色索引值,就可以从颜色映射表中找到该像素实际颜色的RGB分量值
- 索引图像数据可用两个二维数组,“M*N二维数组,保存每个像素的颜色索引值”、“P*3二维数组保存颜色映射表,即像素颜色索引值所对应的颜色RGB分量”
灰度图像
- 灰度图像每个像素只需一个数值描述,称为像素的“灰度值”,“强度”或“亮度值”
- Python中可用M * N的二维数组保存灰度图像数据
二值图像
- 二值图像的每个像素值只能取两个离散值之一,这两个离散值一个代表“黑”、另一个代表“白”,也可将二值图像看做特殊的灰度图像
- OpenCv中,这两个离散值是255和0,1和0.Scikit-image中,二值图像像素值常用bool类型的True和False来表示
视频图像
- 视频图像并不是新的图像类型,只是一组内容“连续渐变的图像序列”
- 视频中每帧图像称为“帧”,每秒显示的图像帧数称为“帧率”
- 数字视频图像的数据量很大,在存储和传输时要采用“压缩编码技术”
- 视频图像像素的灰度或颜色分量,不仅仅是空间点的函数,还是时间的函数。
图像类型之间的转换
- 图像处理常需要对图像类型进行转换(将彩色图像转换为灰度图像,将灰度图像转换为彩色图像)
- 图像转换为二值图像,属于图像分割
图像的数字化
图像及其特点
- 从广义讲,图像是用各种“成像系统”以不同方式和手段观测客观世界而获得的,可以直接或间接作用于人眼、并进而产生视知觉的实体
- 二维信号
- 二维函数
- 图像的数学定义:任何带有信息的二维函数都可以被看作一幅图像
- 灰度图像可定义为一个二维函数f(x,y),这里x和y是定义域为平面的空间坐标,函数值称为该图像的强度或灰度
模拟图像与数字图像
- 模拟图像:如果图像f(x,y)定义域(x,y)和值域均为连续值时,称其为模拟图像
- 数字图像:如果f(x,y)的定义域(x,y)和值域均为有限的离散数值,称为数字图像
像素:数字图像由有限个元素(采样点)组成,每个元素都有一个特定的位置和幅值,这些元素称为图像元素,简称像素
图像空间分辨率
- 空间分辨率:是图像中可辨别的最小细节的度量,依赖于成像面阵传感器的有效像素数,像素数越多,对细节的分辨和捕捉能力就越强,图像就越清晰。
图像坐标系
- x轴垂直向下,对应数组行序,y轴水平向右,对应数组列序
图像的基本运算
数据类型:
- 图像数据采用NumPy的uint8的类型,当计算结果超出范围[0,255]时会溢出
- 图像数据的算术运算,通常希望采用饱和处理
图像的算术运算
- NumPy提供了加、减、乘、除、真除
- 其中“/”运算符为“真除”,与数学中的除法定义更为接近,即返回除法的浮点数结果
- 除法运算符“//”对除法结果的浮点数进行向下取整,返回整数
数组运算,又称点运算,对多付图像进行数组运算时,参与运算的图像数组应该具有相同的维数
图像的比较运算
- 参与比较的两个图像数组应该具有相同维数
- 数组中的分量分别对应比较
图像的逻辑运算
- 数组中的对应分量进行逻辑运算
- 逻辑运算主要有“与AND”、“或OR”、“非NOT”、“异或XOR”
图像的二进制运算
- 将两个整数类型图像数组对应元素的二进制值,按位进行逻辑运算,结果是一个相同维数的整数类型数组
- 运算有:“与&”、“或|”、“非~”、“异或^”
像素之间的位置关系
邻域
- 像素是构成数字图像的基本单元,图像处理常以单个像素或一组像素为操作对象
- 为便于界定参与运算的像素集合,常用“邻域”描述像素之间的位置关系