数字化图像的过程

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

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

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
相关推荐
fuquxiaoguang2 小时前
中间件的“价值重估”:传统同质化竞争终结,AI智能编排时代开启
人工智能·中间件
触底反弹3 小时前
🔥 前端也能玩转 AI 流式输出!从二进制流到打字机效果,一篇讲透
javascript·人工智能·node.js
腾渊信息科技公司3 小时前
工业数据运维痛点根治方案:基于AI Agent的产线自动化台账系统落地
运维·人工智能·自动化·个人开发·ai编程
西安老张(AIGC&ComfyUI)3 小时前
第030章:ComfyUI视频制作LTX-2.3模型文生视频工作流详解(三)
人工智能·aigc·comfyui
苦猿的大模型日记3 小时前
Day25 | 模型量化横评 GPTQ vs AWQ vs GGUF vs INT8——同一个 Qwen3-8B 压四遍,谁还活着
人工智能
benchmark_cc3 小时前
如何用 Python + QuantDash 快速构建高胜率“配对交易(Pairs Trading)”策略?
开发语言·人工智能·python·pandas·量化交易·quantdash
深海鱼肝油ya3 小时前
小说自动生成系统(二)
人工智能·大模型·agent·智能体·自动化编程·小说生成系统
通问AI4 小时前
Apple Intelligence 国行备案深度技术解析:阿里千问如何被集成到苹果端侧AI架构
人工智能·架构
视***间4 小时前
算力赋能零售与创意新生态:视程空间Pandora,解锁线下场景智能化无限可能
人工智能·边缘计算·智慧零售·ai算力·视程空间·创意开发
冬奇Lab4 小时前
MCP 系列(08):企业治理——Registry、路由与可观测性
人工智能·llm·mcp