数字化图像的过程

图像数字化原理【细化扩充完整版|采样 + 量化 + 编码,考点 + 原理 + 代码 + 易错点】

现实世界光线、景物是连续模拟信号(时域 / 空域连续、亮度连续) ,计算机只能存储离散数字,一张实景变成矩阵图像必经:采样 → 量化 → 编码三步,是整张图像处理理论根基。

1.1 采样 Sampling(空间离散化:坐标由连续→离散)

本质:在连续二维平面上等间距抽取坐标点,只保留采样位置的亮度,其余舍弃,实现空间维度离散。

1.1.1 空间采样(静态图片)

  1. 采样间隔Ts:相邻两个像素的物理距离;
    • Ts越小 → 采样密度越高 → 分辨率越高、细节越丰富;
    • Ts越大 → 采样稀疏 → 分辨率低、马赛克、细节丢失。
  2. 分辨率定义:W×H = 横向采样点数 × 纵向采样点数
    • 1080P:1920 (宽采样数)×1080 (高采样数)
    • 4K:3840×2160,同等尺寸画布采样点数量≈4 倍 1080P
  3. 奈奎斯特采样定理(采样核心考点) 图像细节对应空间高频信号,采样频率必须>2 倍图像最高空间频率,否则发生混叠失真(摩尔纹、锯齿)

例:斜条纹布料拍照出现诡异彩色波纹 = 采样不足导致混叠。

1.1.2 时域采样(动态视频)

视频是连续时序画面,对时间轴等间隔采样:FPS(帧率)=每秒时域采样画面数量

  • 24FPS:1s 内采集 24 张静态图像;
  • FPS 过低:画面卡顿、拖影(时域采样不足)。

补充:采样实操

OpenCV 图像缩放降分辨率 = 人为减少采样点:

python

运行

复制代码
import cv2
img = cv2.imread("test.jpg")
# 缩小=减少采样点数,分辨率下降
img_low = cv2.resize(img,(320,240))

1.2 量化 Quantization(亮度离散化:灰度由连续→有限整数)

采样只固定了像素位置,每个采样点的亮度依旧是连续实数;量化:把无穷连续的亮度区间,划分成N个区间,同一区间内所有亮度统一映射成同一个整数值。

1.2.1 量化级数与位深关系

N=2BitDepth

表格

位深 量化级数N 像素取值范围 应用场景
1bit 21=2 0,1 二值黑白图、文档扫描
8bit 28=256 0∼255 日常 JPG/PNG、OpenCV 默认图像
16bit 216=65536 0∼65535 相机 RAW 原图、医学 CT、工业视觉
32bit 浮点 连续 0.0∼1.0 深度学习归一化图像、中间计算图

1.2.2 量化误差 & 量化失真

量化取整带来的亮度差值 = 量化误差

  • 量化级数越少(位深越低)→误差越大;
  • 典型失真:色带(色调分层):天空渐变、墙面渐变从平滑过渡变成一块一块阶梯色块。

实操:8bit 转 1bit(二值化)是极端量化,大量灰度被合并,细节丢失严重。

python

运行

复制代码
# 低量化演示:把0~255压缩为4个灰度等级(2bit)
img = cv2.imread("test.jpg",0)
img_quant = (img//64)*64

1.2.3 均匀量化 / 非均匀量化

  1. 均匀量化(通用图像):每个灰度区间宽度相等,8bit 图像等分 0~255;
  2. 非均匀量化(JPG、人眼优化):人眼对暗部更敏感,暗部量化区间更小、级数更密,亮部区间更大,同等 bit 下肉眼画质更好。

1.3 编码 Encoding(数据压缩存储,减少磁盘占用)

采样 + 量化完成后,原始裸数据(BMP 格式)体积极大,编码就是按照特定算法对像素矩阵压缩、规整格式,生成图片文件

1.3.1 无损编码(压缩后解码和原图像素完全一致,无画质损失)

压缩原理:利用像素重复冗余(大面积纯色、连续相同灰度),不丢弃任何像素信息

  • BMP:无压缩原始位图,直接存储全部像素,体积最大;
  • PNG:DEFLATE 无损压缩,支持 Alpha 透明通道;
  • TIFF:工业无损格式,支持 16bit 高位深图像。

1.3.2 有损编码(丢弃人眼不敏感高频细节,大幅压缩体积)

压缩时剔除图像高频信息(细小纹理、细微噪点),解压无法还原原始像素:

  • JPEG:基于 DCT 离散余弦变换,丢弃高频细节;压缩率越高画质越差;

关键坑:JPG 反复保存 = 多次有损压缩,画质逐级劣化、越来越糊

拓展串联知识点(衔接前文)

  1. 采样 → 决定图像分辨率 (H,W)
  2. 量化 → 决定图像位深、像素取值范围 (uint8/uint16)
  3. 编码 → 决定**文件格式 (JPG/PNG/BMP)**三者共同决定一张图片的内存占用:单张 8bit 1920×1080 灰度原图裸内存:1920×1080×1 Byte
相关推荐
百胜软件@百胜软件1 小时前
巡讲实录丨AI让业务自己跑:胜券AI多智能体协同,加速业务运营新效能
人工智能·零售数字化·数智中台·珠宝行业
lqqjuly1 小时前
深度学习理论:从神经网络到Transformer—前馈网络、反向传播、注意力机制与训练
深度学习·神经网络·transformer
继续商行1 小时前
Go 切片与数组内存分配底层差异:大数据量场景下的性能对比
人工智能
向量引擎2 小时前
多模型 API 网关接入实践:统一 Base URL、API Key 管理与故障排查
人工智能·gpt·ai编程·ai写作·key
埃科光电2 小时前
打通全场景检测痛点UB系列相机赋能多元智造场景
图像处理·数码相机·计算机视觉·制造·相机
chsmiao2 小时前
张量(Tensor)
深度学习·ai编程
KKKlucifer2 小时前
AI赋能安全运营,构建闭环数据风险防御体系
人工智能·安全
A_Sinon2 小时前
卷积神经网络
人工智能·神经网络·cnn
继续商行2 小时前
跨语言 Benchmark 实战:C++、Rust、Go、Java 在 AI 向量计算场景下的性能硬核横评
人工智能