开始学习数字图像处理和MATLAB的一部分使用。以下是数字图像的一些基本知识概念,用以加深对数字图像处理的理解。
1.图像的表示方法
(1)二进制图像(二值图像):
该操作只返回与二进制图像的形式或结构有关的信息。 常用位图格式储存。 转换成二值图像:im2bw()
(2)灰度图像(单色图像):
8位表示一个像素,0表示黑色,255表示白色。 无符号整型表示的灰度图像每个像素在[0, 255]或[0, 65535]范围内取值;双精度类型表示的灰度图像,每个像素在[0.0, 1.0]范围内取值。
(3)GRB图像(真彩色):
是一种彩色图像的表示方法,存储为一个M*N*3的多维数据矩阵。 每个像素中的每种颜色分量占8位,每一位由[0, 255]中的任意数值表示,那么一个像素由24位表示,允许的最大值为2^24(通常记为16M)。RGB图像不使用调色板。
(4)索引图像:
索引图像包含一个数据矩阵X和一个颜色映射(调色板)矩阵map。 颜色映射矩阵map是一个m*3的数据阵列,其中每个元素的值均为[0, 1]之间的双精度浮点型数据。 调色板通常与索引图像存储在一起,装载图像时,调色板将和图像一同自动装载。
(5)多帧图像(多页图像/图像序列):
主要用于需要对时间或场景上相关图像集合进行操作的场合。 在MATLAB中,用一个四维数组表示多帧图像,其中第四维用来指定帧的序号。图像处理工具箱支持在同一个数组中存储多幅图像,每一幅图像称为一帧。如果一个数组中包含多帧,那么这些图像的第四维是相互关联的。在一个多帧图像数组中,每一帧图像的大小和颜色分量必须相同,并且这些图像使用的调色板也必须相同。
2.图像的数据结构
(1)矩阵
(2)链码:
分为4向链码和8向链码。边界链码的表示与起始点的选取直接相关,起始点不同,链码的表示也不相同。为了实现链码与起始点无关,需要将链码归一化。简单的归一化方法将链码看成一个自然数,取不同的起始点,得到不同的链码。比较这些自然数表示的链码找到其中最小的自然数。
(3)拓扑结构:
分为4-邻域(只考虑上下左右),对角邻域(只考虑对角上的4个像素点),4-邻域和对角邻域都加上称为8-邻域。 若连接像素的都是 4-领域像素点,则像素称为4-连通,这个集合称为4-组元。同理可知8-连通和8-组元。
(4)关系结构
常用的描述方法为串描述和树描述。 串描述适用于那些图像元素的连接可以用来从头到尾或用其它连续形式的图像元素的描述。 链码就是基于串描述思想描述的。 而树描述则是一种能够对不连接区域进行很好描述的方法。
3.图像文件格式
(1)BMP
分为设备相关位图(DDB)和设备无关位图(DIB),Windows 3.0 作为分界。 默认文件扩展名是 .BMP或 .bmp。 扫描方式:从左到右、从上到下的顺序
(2)GIF
分为静态GIF和动画GIF。 扩展名为 .GIF 或 .gif。GIF文件的数据是一种基于LZW算法的连续色调的无损压缩格式,但只能显示256色。
(3)JPEG
分为标准JPEG、渐进式JPEG及JPEG 2000。 扩展名为 .jpg 或 .jpeg。 JPEG使用一种有损压缩算法,但是这种损失很小以至于很难察觉。当编辑和重新保存JPEG文件时,会使原始图像数据的质量下降。因此,JPEG格式不适用于所含颜色很少、具有大块颜色相近的区域或亮度差异十分明显的较简单的图片。
(4)TIFF
有四种类型:TIFF-B适用于二值图像; TIFF-G 适用于黑白灰度图像; TIFF-P 适用于带调色板的彩色图像; TIFF-R 适用于RGB真彩图像。 扩展名为 .tif 或 .tiff。TIFF文件格式善于应用指针的功能,可存储多份调色板数据,可以存储多幅图像。