【图像处理】-不同的图像存储格式

看到了前面的基础操作介绍,我们再了解一下不同图像的存储格式,更有利于我们理解图像处理的原理。

图像存储格式详细介绍

1. BMP(BitMap Picture)

发展历史

BMP是一种位图文件格式,由微软公司于1986年推出。它最初是为Windows操作系统设计的,后来逐渐被其他操作系统所支持。由于其简单易用的特点,在早期计算机图形学中得到了广泛应用。

描述

BMP是一种与设备无关的位图格式,这意味着无论何种显示设备都可以正确地渲染该图像。BMP文件由四个部分组成:文件头、位图信息头、颜色表(可选)和位图数据。其中,文件头用于描述文件的基本信息;位图信息头则包含了关于图像尺寸、色彩深度等详细信息;颜色表定义了图像中使用的颜色;而位图数据则是实际的像素值。

存储结构示例
字段名称 长度(字节) 描述
文件类型 2 标识文件为BMP格式 (BM)
文件大小 4 整个文件的大小
保留值 4 保留未使用
数据偏移量 4 从文件开头到图像数据之间的字节数
大小 4 本信息头的长度
宽度 4 图像宽度,以像素为单位
高度 4 图像高度,以像素为单位
色彩平面数 2 总是设置为1
位数/像素 2 每个像素占用的位数
压缩方式 4 表示是否压缩及采用何种压缩算法
图像大小 4 压缩后的图像数据大小
水平分辨率 4 每米的像素数
垂直分辨率 4 每米的像素数
使用的颜色数 4 颜色表中颜色的数量
重要颜色数 4 对图像显示至关重要的颜色数量
实际图片数据说明

假设我们有一张10x10像素的单色(黑白)BMP图像,每个像素占1位,总共有100个像素点。文件结构如下:

  • 文件头:

    • 文件类型: BM (2字节)
    • 文件大小: 54 + 100 = 154字节 (4字节)
    • 保留值: 0 (4字节)
    • 数据偏移量: 54字节 (4字节)
  • 位图信息头:

    • 大小: 40字节 (4字节)
    • 宽度: 10像素 (4字节)
    • 高度: 10像素 (4字节)
    • 色彩平面数: 1 (2字节)
    • 位数/像素: 1位 (2字节)
    • 压缩方式: 0 (无压缩) (4字节)
    • 图像大小: 100字节 (4字节)
    • 水平分辨率: 2835 DPI (4字节)
    • 垂直分辨率: 2835 DPI (4字节)
    • 使用的颜色数: 2 (4字节)
    • 重要颜色数: 0 (4字节)
  • 颜色表:

    • 黑色: RGB(0, 0, 0) (4字节)
    • 白色: RGB(255, 255, 255) (4字节)
  • 位图数据:

    • 按行排列的100个像素点,每个像素点占1位,共13字节(因为每8个像素点需要1字节存储)

2. JPEG(Joint Photographic Experts Group)

发展历史

JPEG是由联合图像专家组在1992年制定的一种有损压缩标准,旨在解决数字照片和其他连续色调图像所需的大量存储空间问题。JPEG格式因其高效的压缩比和良好的视觉质量而在互联网上广泛传播。

描述

JPEG采用了基于离散余弦变换(DCT)的压缩技术,可以显著减少文件体积而不明显影响画质。JPEG文件由一系列标记段组成,每个标记段包含一个两字节的标识符、两个字节表示内容长度以及具体的数据。

存储结构示例
标记段 长度(字节) 描述
SOI (Start of Image) 2 文件开始标志 (FF D8)
APP0 (JPEG应用段0) 16 应用程序特定信息
DQT (定义量化表) 67 量化表参数
SOF0 (开始帧0) 17 帧头部信息
DHT (定义哈夫曼表) 328 哈夫曼编码表
SOS (开始扫描) 12 + 图像数据 + EOI (End of Image, 2字节) 扫描开始及结束标志 (FF DA, FF D9)
实际图片数据说明

假设我们有一个简单的JPEG图像,包含以下标记段:

  • SOI : FF D8
  • APP0: 包含JFIF头信息
  • DQT: 定义量化表
  • SOF0 : 帧头部信息,例如:
    • 图像宽度: 640像素
    • 图像高度: 480像素
    • 精度: 8位
  • DHT: 定义哈夫曼编码表
  • SOS: 开始扫描,后跟压缩后的图像数据
  • EOI : 文件结束标志 FF D9

3. PNG(Portable Network Graphics)

发展历史

PNG格式是在1995年由一群开发者创建,作为GIF格式的替代品。PNG不仅支持透明背景,还提供了更好的压缩效果,并且是完全无损的。随着Web技术的发展,PNG成为了网页设计师们最喜爱的图像格式之一。

描述

PNG是一种无损压缩的位图格式,具有跨平台兼容性。PNG文件由一个固定的签名序列后跟多个块构成。每个块都有自己的类型代码、长度字段和校验和,确保数据完整性。

存储结构示例
长度(字节) 描述
文件签名 8 确认文件为PNG格式 (89 50 4E 47 0D 0A 1A 0A)
IHDR (Image Header) 17 图像基本信息如宽度、高度等
PLTE (Palette) 至少3n+1 调色板中的颜色条目
IDAT (Image Data) 至少12 实际图像数据
IEND (Image Trailer) 12 文件结束标志
实际图片数据说明

假设我们有一个简单的PNG图像,包含以下块:

  • 文件签名 : 89 50 4E 47 0D 0A 1A 0A
  • IHDR : 包含图像宽度、高度、位深度等信息
    • 宽度: 640像素
    • 高度: 480像素
    • 位深度: 8位
    • 颜色类型: 真彩色带Alpha通道
  • PLTE: 如果是调色板图像,则包含调色板条目
  • IDAT: 压缩后的图像数据
  • IEND: 文件结束标志

4. GIF(Graphics Interchange Format)

发展历史

GIF最早出现在1987年,由CompuServe公司开发。最初版本被称为GIF87a,随后在1989年进行了改进,推出了GIF89a版本,增加了对动画和透明度的支持。尽管存在版权争议,但GIF仍然非常流行,特别是在社交媒体平台上分享简短动画时。

描述

GIF使用LZW压缩算法进行无损压缩,适合存储具有较少颜色变化的简单图形或小型动画。GIF文件结构相对简单,主要包括文件头、逻辑屏幕描述符、全局颜色表(如果有的话)、图像描述符、局部颜色表(如果有的话)以及图像数据。

存储结构示例
字段名称 长度(字节) 描述
文件头 6 "GIF87a" 或 "GIF89a"
逻辑屏幕描述符 7 包含屏幕宽度、高度等信息
全局颜色表 3n RGB三元组组成的调色板
图像描述符 10 指定图像位置和尺寸
局部颜色表 3m 如果存在,则覆盖全局颜色表
图像数据 变长 LZW压缩后的像素流
实际图片数据说明

假设我们有一个简单的GIF图像,包含以下字段:

  • 文件头 : GIF89a
  • 逻辑屏幕描述符 :
    • 宽度: 100像素
    • 高度: 100像素
    • 调色板大小: 256色
  • 全局颜色表: 包含256个RGB三元组
  • 图像描述符 :
    • 左位置: 0
    • 上位置: 0
    • 宽度: 100像素
    • 高度: 100像素
  • 图像数据: LZW压缩后的像素流
相关推荐
天若有情67318 分钟前
【新闻资讯】IT 行业最新动向:AI 引领变革,多领域融合加速
人工智能·量子计算
Suyuoa19 分钟前
PaddleDetection目标检测自定义训练
人工智能·目标检测·计算机视觉
szxinmai主板定制专家20 分钟前
基于ARM+FPGA的高端伺服驱动与运动控制解决方案
大数据·arm开发·人工智能·fpga开发·架构
iracole1 小时前
深度学习训练Camp:第R5周:天气预测
人工智能·python·深度学习
带电的小王2 小时前
【大模型基础_毛玉仁】1.5 语言模型的评测
人工智能·语言模型·自然语言处理·大语言模型基础·大模型基础_毛玉仁
梦丶晓羽3 小时前
自然语言处理:最大期望值算法
人工智能·python·自然语言处理·高斯混合模型·最大期望值算法
gis收藏家3 小时前
使用开放数据、ArcGIS 和 Sklearn 测量洛杉矶的城市相似性
人工智能·arcgis·sklearn
helpme流水5 小时前
【人工智能】Open WebUI+ollama+deepSeek-r1 本地部署大模型与知识库
人工智能·ubuntu·ai
Icomi_7 小时前
【神经网络】0.深度学习基础:解锁深度学习,重塑未来的智能新引擎
c语言·c++·人工智能·python·深度学习·神经网络
半问7 小时前
广告营销,会被AI重构吗?
人工智能·重构