文章目录
以下将详细介绍
Mono8
、
Mono10
、
Mono10 Packed
、
Mono12
和
Mono12 Packed
这些单通道(灰度)像素格式。
Mono8
特点
- 单通道灰度:
Mono8
表示图像是单通道的灰度图像,每个像素只有一个灰度值,用于反映该像素的亮度信息。 - 8 位深度:每个像素使用 8 位(1 字节)来存储灰度值,能表示 2 8 = 256 2^8 = 256 28=256 个不同的灰度级别,范围从 0(黑色)到 255(白色)。这是最常见的灰度图像格式,在很多图像采集和显示设备中广泛应用。
存储方式
在内存中,每个像素占用 1 个字节。如果图像的宽度为 W
,高度为 H
,那么图像数据的总字节数就是 W * H
。例如,对于一个 640x480 的 Mono8
图像,其数据量为 640 * 480 = 307200 字节。
应用场景
由于其简单性和广泛支持性,Mono8
适用于大多数对图像质量要求不是极高的场景,如普通的监控摄像头、一些基础的图像处理算法测试等。
Mono10
特点
- 单通道灰度:同样是单通道的灰度图像,每个像素仅包含一个灰度值。
- 10 位深度:每个像素使用 10 位来存储灰度值,可表示
2
10
=
1024
2^{10}= 1024
210=1024 个不同的灰度级别,相比
Mono8
能提供更丰富的亮度细节,在处理一些对亮度变化敏感的场景时更具优势。
存储方式
因为计算机内存以字节为基本单位,每个 Mono10
像素通常占用 2 个字节(16 位),其中高 10 位存储实际的灰度值,低 6 位通常填充为 0。对于宽度为 W
、高度为 H
的图像,数据总字节数为 W * H * 2
。
应用场景
常用于对图像质量有一定要求的领域,如工业检测中检测微小的表面缺陷、科学研究中的显微镜成像等,更丰富的灰度级别有助于识别更细微的亮度差异。
Mono10 Packed
特点
Mono10 Packed
也是单通道 10 位灰度图像,但它采用了更紧凑的存储方式,目的是减少存储空间的浪费,提高数据传输和存储效率。
存储方式
一般将 4 个 10 位像素(共 40 位)打包到 5 个字节(40 位)中。具体的打包规则可能因设备或标准而异,但核心思想是将相邻的像素数据紧凑排列。对于宽度为 W
、高度为 H
的图像,数据总字节数为 (W * H * 10 + 7) / 8
(向上取整)。
应用场景
在需要大量存储或高速传输图像数据的场景中具有优势,比如高速工业相机的数据采集,既能保证图像质量,又能减少数据量。
Mono12
特点
- 单通道灰度:单通道的灰度表示,每个像素代表一个灰度值。
- 12 位深度:每个像素使用 12 位来存储灰度值,可表示
2
12
=
4096
2^{12} = 4096
212=4096 个不同的灰度级别,能提供比
Mono10
更精细的亮度信息。
存储方式
每个 Mono12
像素通常占用 2 个字节(16 位),其中高 12 位存储实际的灰度值,低 4 位通常填充为 0。对于宽度为 W
、高度为 H
的图像,数据总字节数为 W * H * 2
。
应用场景
适用于对图像质量要求较高的专业领域,如医疗成像(如 X 光、超声等)、高端科学研究(如天文学观测)等,能够捕捉到更细微的亮度变化和细节。
Mono12 Packed
特点
Mono12 Packed
是 Mono12
的紧凑存储格式,通过优化存储方式减少数据量。
存储方式
通常将 2 个 12 位像素(共 24 位)打包到 3 个字节(24 位)中。具体的打包方式依据不同的标准和设备实现。对于宽度为 W
、高度为 H
的图像,数据总字节数为 (W * H * 12 + 7) / 8
(向上取整)。
应用场景
和 Mono10 Packed
类似,在对存储和传输要求较高且需要高图像质量的场景中使用,如高清医疗影像的实时传输等。