【图像压缩】实现离散小波变换(DWT)并将其应用于图像压缩附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。

🍎 往期回顾关注个人主页:Matlab科研工作室

🍊个人信条:格物致知,完整Matlab代码及仿真咨询内容私信。

🔥 内容介绍

一、离散小波变换(DWT)的核心概念与技术优势

离散小波变换(Discrete Wavelet Transform,DWT)是一种基于多尺度分析的信号处理技术,它通过将信号分解为不同频率分量(低频近似分量与高频细节分量),实现对信号的稀疏表示。在图像处理领域,DWT 突破了传统傅里叶变换仅能分析信号频率、无法兼顾时域局部性的局限,能同时捕捉图像的低频全局信息与高频局部细节(如边缘、纹理),为图像压缩提供了高效的技术支撑。

相较于传统图像压缩技术(如基于离散余弦变换 DCT 的 JPEG 标准),DWT 用于图像压缩具有显著优势:

  1. 更高的压缩效率:DWT 通过多尺度分解,将图像的能量集中在低频近似分量中,高频细节分量幅值较小且冗余度高,可通过阈值量化大幅剔除冗余信息,在相同压缩比下,重建图像的峰值信噪比(PSNR)比 DCT 压缩高 2-3dB,视觉失真更小。
  1. 更好的视觉质量:DCT 压缩易在高压缩比下产生 “块效应”(因 8×8 或 16×16 块独立变换导致块边界灰度突变),而 DWT 基于全局多尺度分解,压缩后图像无明显块效应,尤其在纹理复杂区域(如人脸、自然风景),视觉连贯性更优。
  1. 多分辨率表示能力:DWT 可对图像进行多级分解(如 2 级、3 级分解),不同分解级别对应不同分辨率的图像信息,支持 “渐进式传输”—— 先传输低频近似分量(模糊图像),再逐步传输高频细节分量(清晰化图像),满足不同带宽场景的需求(如低带宽下优先显示模糊图像,带宽充足时加载高清细节)。
  1. 对边缘与纹理的保留更好:高频细节分量直接对应图像的边缘、纹理等关键视觉特征,DWT 在压缩过程中可通过自适应量化策略,优先保留重要高频信息,避免传统压缩中边缘模糊、纹理丢失的问题。

二、离散小波变换(DWT)的原理与实现

(一)DWT 的核心原理

DWT 的本质是通过 “滤波 + 下采样” 操作,将信号(图像)分解为低频子带(LL)与高频子带(LH、HL、HH),具体原理如下:

  1. 小波基的选择:小波基是 DWT 的核心,需满足 “紧支撑性”(时域局部性好,仅在有限区间有非零值)、“正交性”(分解后各子带信息不冗余)与 “平滑性”(重建图像无失真)。常用的小波基包括 Haar 小波(最简单,计算快但平滑性差)、Daubechies 小波(如 db4、db6,平衡平滑性与计算复杂度,图像压缩中最常用)、Biorthogonal 小波(双正交,支持无损压缩)。
  1. 一维 DWT 分解:对一维信号(如图像的一行像素),通过低通滤波器(LPF)与高通滤波器(HPF)分别过滤出低频分量(信号的整体趋势)与高频分量(信号的细节波动),再对滤波后的低频与高频分量进行 2 倍下采样(保留偶数位置样本),得到 1/2 长度的低频系数(L)与高频系数(H),完成一级分解;若需多级分解,可对低频系数(L)重复上述 “滤波 + 下采样” 操作,得到更细尺度的低频与高频系数。
  1. 二维 DWT 分解:图像为二维信号,其 DWT 分解需在水平与垂直方向分别执行一维 DWT:
  • 第一阶段:对图像的每一行执行一维 DWT,得到水平方向的低频分量(L)与高频分量(H);
  • 第二阶段:对水平分解后的结果,按每一列执行一维 DWT,最终得到四个子带:
  • LL 子带:水平与垂直方向均为低频,对应图像的近似轮廓(能量集中区域);
  • LH 子带:水平低频、垂直高频,对应图像的垂直边缘细节;
  • HL 子带:水平高频、垂直低频,对应图像的水平边缘细节;
  • HH 子带:水平与垂直均为高频,对应图像的对角边缘与纹理细节。
  • 多级分解:对 LL 子带重复二维 DWT 分解,可得到更高级别的子带(如 2 级分解得到 LL2、LH2、HL2、HH2、LH1、HL1、HH1,级别越高,LL 子带分辨率越低,高频子带细节越精细)。

(二)DWT 的工程实现步骤(以灰度图像为例)

以常用的 Daubechies 小波(db4)为例,基于 Python 的 OpenCV 与 PyWavelets 库,二维 DWT 的实现步骤如下:

  1. 图像预处理:
  • 读取灰度图像:通过cv2.imread()读取图像,转换为灰度图像(若为彩色图像,需先分离 RGB 通道,对每个通道单独执行 DWT);
  • 图像尺寸调整:DWT 分解要求图像尺寸为 2 的整数次幂(如 256×256、512×512),若尺寸不满足,需通过零填充(在图像边缘补充 0 像素)或裁剪,调整为最近的 2 次幂尺寸(如 240×240 调整为 256×256,填充 16 列与 16 行零像素)。
  1. 一维滤波器设计:
  • 根据所选小波基(如 db4),获取对应的低通滤波器系数(h0)与高通滤波器系数(h1),例如 db4 的低通系数为 [0.1629, 0.5012, 0.4492, -0.0195, -0.0766, 0.0217],高通系数为 [-0.0217, -0.0766, 0.0195, 0.4492, -0.5012, 0.1629](高通系数为低通系数的逆序翻转,满足正交性)。
  1. 二维 DWT 分解:
  • 水平方向滤波:对图像每一行像素,分别与低通滤波器 h0、高通滤波器 h1 进行卷积(注意边界处理,采用 “对称填充” 避免边缘失真),得到水平低频行(L_row)与水平高频行(H_row);
  • 水平下采样:对 L_row 与 H_row 分别保留偶数索引的像素(下采样因子为 2),得到水平分解后的图像;
  • 垂直方向滤波:对水平分解后的图像每一列像素,重复上述卷积操作,得到垂直低频列(L_col)与垂直高频列(H_col);
  • 垂直下采样:对 L_col 与 H_col 分别保留偶数索引的像素,最终得到 LL、LH、HL、HH 四个子带系数矩阵。
  1. 多级分解迭代:若需执行 N 级 DWT 分解,将上一级的 LL 子带作为输入,重复步骤 3 的二维 DWT 操作,直至完成 N 级分解,最终得到 1 个 N 级 LL 子带与 3N 个高频子带(如 3 级分解得到 LL3、LH3、HL3、HH3、LH2、HL2、HH2、LH1、HL1、HH1)。

三、基于 DWT 的图像压缩实现流程

基于 DWT 的图像压缩核心是 “分解 - 量化 - 编码” 三步流程,通过剔除高频子带的冗余信息,实现图像数据的压缩存储,具体流程如下:

(一)步骤 1:DWT 分解(已在上文详述)

对输入图像执行 N 级 DWT 分解(通常 N=2 或 3,分解级数越多,高频细节越精细,但计算量越大),得到各级子带系数。以 2 级分解为例,分解结果的能量分布为:LL2 子带集中了图像 70%-80% 的能量,LH2、HL2、HH2 子带能量次之,LH1、HL1、HH1 子带能量最低(多为噪声或细微纹理,冗余度高)。

(二)步骤 2:系数量化(关键压缩环节)

量化的目的是对 DWT 分解后的系数进行 “有损压缩”,通过减少系数的比特数,剔除冗余信息。由于不同子带的视觉重要性不同,需采用自适应量化策略,对重要子带(如 LL 子带、低级高频子带)采用细量化(量化步长小,保留更多细节),对次要子带(如高级高频子带)采用粗量化(量化步长大,剔除更多冗余):

  1. 量化步长设计:
  • LL 子带:图像的近似轮廓,视觉重要性最高,量化步长 s_LL 通常取 1-2(如 s_LL=1.2),确保保留大部分能量;
  • 低级高频子带(如 LH2、HL2):对应图像的主要边缘与纹理,量化步长 s_LH2=s_HL2 取 3-5(如 s=3.5);
  • 高级高频子带(如 LH1、HL1、HH1):对应细微纹理与噪声,量化步长 s_HH1 取 8-12(如 s=10),大幅压缩冗余系数。
  1. 量化操作:对每个子带的系数矩阵 C,按量化步长 s 执行量化计算:

    Cquant=round(C/s)

    ,其中 round () 为四舍五入函数。量化后,大量高频系数会被量化为 0(尤其是高级高频子带),为后续编码压缩奠定基础。

(三)步骤 3:系数编码(无损压缩环节)

编码的目的是对量化后的系数矩阵进行 “无损压缩”,通过编码算法减少数据的存储比特数。由于量化后系数矩阵中存在大量 0 值(稀疏性高),需采用支持稀疏数据压缩的编码算法,常用方案包括:

  1. 游程编码(RLE):对量化后的系数矩阵,按 “非零值 + 后续零值个数” 的格式编码,例如序列 [5, 0, 0, 0, -3, 0, 0] 可编码为 [(5,3), (-3,2)],大幅减少 0 值的存储比特数。为提升效率,通常先对系数矩阵进行 “Z 字形扫描”(从 LL 子带开始,按能量递减顺序扫描各级子带,使非零系数集中分布,零值形成连续游程)。
  1. 霍夫曼编码(Huffman Coding):对 RLE 编码后的符号(非零值与游程长度),根据符号出现频率构建霍夫曼树,对高频符号分配短比特码,对低频符号分配长比特码,进一步降低平均比特率。例如,出现频率最高的 “(0,5)”(连续 5 个零值)可分配 2 位比特码 “01”,出现频率低的 “(8,2)” 可分配 6 位比特码 “101100”。
  1. 算术编码(Arithmetic Coding):相比霍夫曼编码,算术编码无需为每个符号单独分配比特码,而是将整个符号序列映射为 [0,1) 区间内的一个实数,通过该实数的二进制表示实现编码。在高压缩比场景下,算术编码的压缩效率比霍夫曼编码高 5%-10%,是 JPEG2000 标准(基于 DWT 的主流图像压缩标准)的默认编码方案。

图片

四、基于 DWT 的图像压缩关键技术优化

在实际应用中,为平衡压缩效率、重建质量与计算复杂度,需对基于 DWT 的图像压缩进行针对性优化:

(一)小波基自适应选择

不同类型的图像(如自然风光、医学影像、文本图像)具有不同的纹理特征,需自适应选择小波基:

  • 自然风光图像(纹理丰富、边缘平滑):选择平滑性好的 Daubechies 小波(如 db6、db8),减少重建图像的边缘失真;
  • 医学影像(如 CT、MRI,需保留精细结构):选择双正交小波(如 bior3.7),支持无损压缩,确保病灶细节不丢失;
  • 文本图像(边缘陡峭、对比度高):选择时域局部性好的 Haar 小波或 db2 小波,避免文字边缘模糊,同时降低计算复杂度。

(二)量化步长动态调整

传统固定量化步长无法适应图像的局部特征差异(如同一图像中,平滑区域与边缘区域的高频系数重要性不同),需采用基于视觉权重的动态量化:

  1. 视觉权重计算:根据人类视觉系统(HVS)的特性,对亮度变化敏感的区域(如平滑区域)赋予高视觉权重,对亮度变化不敏感的区域(如纹理密集区域)赋予低视觉权重;
  1. 动态量化步长:对高视觉权重区域,采用小量化步长(如 s=1.5),保留更多细节;对低视觉权重区域,采用大量化步长(如 s=8),增加压缩比。例如,在人脸图像中,对眼部、面部轮廓等高视觉权重区域采用细量化,对头发、背景等低视觉权重区域采用粗量化。

(三)分级压缩与渐进式传输

基于 DWT 的多分辨率特性,可实现 “分级压缩”,满足不同场景的传输需求:

  1. 基础层压缩:仅对最高级 LL 子带(如 LL3)进行量化编码,得到低分辨率的基础层码流(占总码流的 10%-20%),适合低带宽场景(如移动端网络),用户可快速获取模糊的图像轮廓;
  1. 增强层压缩:对各级高频子带(如 LH3、HL3、HH3、LH2 等)按视觉重要性排序,依次编码为增强层码流,用户可根据带宽情况,逐步加载增强层码流,实现图像的 “从模糊到清晰” 渐进式显示。例如,在远程医疗场景中,医生可先查看基础层的病灶轮廓,再加载增强层查看病灶细节(如边缘形态、纹理特征)。

(四)硬件加速与实时压缩

DWT 分解与逆分解涉及大量卷积运算,在高分辨率图像(如 4K、8K 图像)压缩中,计算量较大,需通过硬件加速提升实时性:

  1. GPU 并行计算:利用 GPU 的并行计算能力,将图像的行 / 列滤波、上采样等操作分配到多个线程执行,例如通过 CUDA 平台实现 DWT 分解的并行化,使 4K 图像的压缩时间从 CPU 的 100ms 缩短至 GPU 的 15ms 以内;
  1. 专用芯片设计:针对嵌入式设备(如监控摄像头、手机),设计 DWT 专用 ASIC 芯片(如 JPEG2000 编码芯片),集成小波滤波、量化、编码的硬件模块,降低功耗的同时提升压缩速度,满足实时监控图像的压缩传输需求(帧率≥30fps)。

五、基于 DWT 的图像压缩应用案例与标准

(一)典型应用案例

  1. 医学影像压缩:
  • 场景需求:CT、MRI 等医学影像分辨率高(如 512×512、1024×1024),需在保留病灶细节的前提下压缩存储(医院 PACS 系统需存储大量影像);
  • 实现方案:采用 3 级 DWT 分解(db6 小波),LL3 子带量化步长 s=1.2(保留轮廓能量),LH3、HL3 子带 s=3(保留主要边缘),HH3 及以下高频子带 s=5(压缩细微纹理),编码采用算术编码;
  • 效果:压缩比可达 10:1,重建图像 PSNR≥40dB,病灶边缘(如肿瘤边界)清晰可辨,满足临床诊断需求。
  1. 遥感图像压缩:
  • 场景需求:遥感卫星拍摄的图像分辨率极高(如 4K×4K、8K×8K),需通过卫星链路传输(带宽有限),同时保留地表细节(如道路、建筑轮廓);
  • 实现方案:采用 4 级 DWT 分解(bior4.4 双正交小波),基础层仅传输 LL4 子带(占总码流 15%),增强层按 LH4→HL4→HH4→LH3 的顺序传输,支持渐进式接收;
  • 效果:在 2Mbps 带宽下,4K 遥感图像的传输时间从原始的 60 秒缩短至 12 秒,重建图像中地表细节的识别准确率≥95%。

(二)主流压缩标准

基于 DWT 的图像压缩已形成成熟的国际标准,其中最具代表性的是JPEG2000 标准:

  1. 核心技术:JPEG2000 以 DWT 为核心,支持无损压缩与有损压缩,采用双正交小波(默认 bior4.4),编码采用算术编码,支持多分辨率表示与渐进式传输;
  1. 优势:相比传统 JPEG 标准(基于 DCT),JPEG2000 在相同压缩比下,重建图像的 PSNR 高 2-3dB,无块效应,且支持感兴趣区域(ROI)压缩 —— 对图像中的重点区域(如医学影像的病灶、遥感图像的目标区域)采用高保真压缩,对背景区域采用高压缩比,兼顾细节保留与压缩效率;
  1. 应用场景:JPEG2000 广泛应用于医学影像(DICOM 标准兼容)、遥感图像、数字图书馆(如古籍扫描图像)、高清视频编码等领域。

六、基于 DWT 的图像压缩发展趋势

随着图像处理技术的进步,基于 DWT 的图像压缩正向更高效、更智能的方向发展,核心趋势包括:

  1. DWT 与深度学习融合:
  • 传统 DWT 的小波基与量化步长依赖人工设计,难以适应复杂图像的多样性。未来将通过深度学习(如卷积神经网络 CNN)自动学习最优小波基(如可学习小波变换 Learned Wavelet Transform,LWT),并基于图像内容动态生成量化步长(如通过生成对抗网络 GAN 学习视觉感知损失,优化量化策略),使压缩效率提升 15%-20%。
  1. 多模态图像联合压缩:
  • 在自动驾驶、机器人视觉等场景中,常需同时处理 RGB 图像、深度图像、红外图像等多模态数据。未来将基于 DWT 的多尺度特性,构建多模态联合分解模型 —— 通过共享 LL 子带(多模态图像的全局共性信息),分别处理高频子带(各模态的独特细节),减少多模态数据的冗余传输,压缩效率比单独压缩提升 25% 以上。
  1. 轻量级 DWT 压缩算法:
  • 针对移动端设备(如手机、物联网终端)的算力与功耗限制,未来将发展轻量级 DWT 压缩算法:通过简化小波基(如采用 3 阶 Haar 小波)、优化量化与编码流程(如用简化 RLE 替代算术编码),在保证压缩质量的前提下,将算法的计算量降低 50%,功耗降低 30%,满足移动端实时压缩需求(如手机拍照的快速存储、短视频的实时编码)。

⛳️ 运行结果

图片

图片

图片

图片

🔗 参考文献

[1] 徐妮妮,吴云峰.数据量保持型对称延拓双正交小波变换及其在数据压缩中的应用[J].天津工业大学学报, 2007, 26(6):3.DOI:10.3969/j.issn.1671-024X.2007.06.016.

[2] 李敏.用硬件实现小波变换及其重构的研究[D].东华大学,2008.DOI:10.7666/d.y1441140.

[3] 杨超.基于小波变换的高光谱图像分类算法应用研究[C]//第十五届全国数学地质与地学信息学术研讨会.0[2025-11-23].DOI:ConferenceArticle/5af2662bc095d716587d3a6b.

📣 部分代码

🎈 部分理论引用网络文献,若有侵权联系博主删除

 👇 关注我领取海量matlab电子书和数学建模资料 

🏆团队擅长辅导定制多种科研领域MATLAB仿真,助力科研梦:

🌈 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱调度、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化、CVRP问题、VRPPD问题、多中心VRP问题、多层网络的VRP问题、多中心多车型的VRP问题、 动态VRP问题、双层车辆路径规划(2E-VRP)、充电车辆路径规划(EVRP)、油电混合车辆路径规划、混合流水车间问题、 订单拆分调度问题、 公交车的调度排班优化问题、航班摆渡车辆调度问题、选址路径规划问题、港口调度、港口岸桥调度、停机位分配、机场航班调度、泄漏源定位
🌈 机器学习和深度学习时序、回归、分类、聚类和降维

2.1 bp时序、回归预测和分类

2.2 ENS声神经网络时序、回归预测和分类

2.3 SVM/CNN-SVM/LSSVM/RVM支持向量机系列时序、回归预测和分类

2.4 CNN|TCN|GCN卷积神经网络系列时序、回归预测和分类

2.5 ELM/KELM/RELM/DELM极限学习机系列时序、回归预测和分类
2.6 GRU/Bi-GRU/CNN-GRU/CNN-BiGRU门控神经网络时序、回归预测和分类

2.7 ELMAN递归神经网络时序、回归\预测和分类

2.8 LSTM/BiLSTM/CNN-LSTM/CNN-BiLSTM/长短记忆神经网络系列时序、回归预测和分类

2.9 RBF径向基神经网络时序、回归预测和分类

2.10 DBN深度置信网络时序、回归预测和分类
2.11 FNN模糊神经网络时序、回归预测
2.12 RF随机森林时序、回归预测和分类
2.13 BLS宽度学习时序、回归预测和分类
2.14 PNN脉冲神经网络分类
2.15 模糊小波神经网络预测和分类
2.16 时序、回归预测和分类
2.17 时序、回归预测预测和分类
2.18 XGBOOST集成学习时序、回归预测预测和分类
2.19 Transform各类组合时序、回归预测预测和分类
方向涵盖风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、用电量预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
🌈图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
🌈 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、 充电车辆路径规划(EVRP)、 双层车辆路径规划(2E-VRP)、 油电混合车辆路径规划、 船舶航迹规划、 全路径规划规划、 仓储巡逻
🌈 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配、无人机安全通信轨迹在线优化、车辆协同无人机路径规划
🌈 通信方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化、水声通信、通信上传下载分配
🌈 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化、心电信号、DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测
🌈电力系统方面
微电网优化、无功优化、配电网重构、储能配置、有序充电、MPPT优化、家庭用电
🌈 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长 金属腐蚀
🌈 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合、SOC估计、阵列优化、NLOS识别
🌈 车间调度
零等待流水车间调度问题NWFSP 、 置换流水车间调度问题PFSP、 混合流水车间调度问题HFSP 、零空闲流水车间调度问题NIFSP、分布式置换流水车间调度问题 DPFSP、阻塞流水车间调度问题BFSP

👇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值