基于小波变换的图像压缩解压缩的matlab仿真

简介: 基于小波变换的图像压缩解压缩的matlab仿真

1.算法描述
图像压缩的类别

    对于图像压缩,主要有两类方法:无损的图像压缩以及有损的图像压缩,分别称为lossless image compression and lossy image compression。

    对于无损的图像压缩方法,压缩的图像必须是原图像的精准的复制,这种的方法主要用于医学影像等方面,稍微一点的图像损失就会带来较大的风险(比如说错误的医学诊断)。

而有损的图像压缩则更为常见,其主要目的是均衡重建图像的质量以及提高压缩比。

图像的数字表示 Digital Representation of Images

   通常的图像可以被定义为2-D的函数f(x,y), 其中x,y为空间坐标,f的幅值被称为亮度/强度或灰度(brightness, intensity, grey level)。 对于我们常见的图像,可以用矩阵MN表示,每个点有各自的像素值,该像素值用无符号的8bit整数表示,范围为0-255,即我们通常所说的8bit位宽的M*N的图像。同样的对于彩色图像,可以由三个这样的矩阵来表示(RGB, HSV, YUV等),那么此时为24bit的彩色图。

数字图像压缩 Digital Image Compression

一张图像之所以可以被压缩,有着以下几方面的原因:

  1. 对于单张图像来说,在邻近的像素之间有着大量的相关性/冗余,称之为空间冗余。因为通常来说,邻近的像素点基本会拥有较为相近的像素值。
  2. 对于从多个sensor获得的数据,各自存在着一定的相关性。

    因此,图像压缩方法就是利用了图像中存在的这些冗余性从而得以实现的。图像压缩系统通常分为两部分:压缩以及解压缩(compressor , decompressor)。对于compressor:通常分为预处理以及编码阶段(preprocessing stage and encoding stage);其中,前处理可以进行一些灰度值/空间域的量化;或者是去噪等。在压缩阶段,可以先将图像进行转换至其它的数学空间,使得其可以更容易的进行压缩(比如说转换到YUV空间,或者是DCT变换等)。接下来是量化阶段,将一些连续的数值转换成离散的形式。

    最后的阶段是编码的部分。将得到的数据进行编码后传输。而对于decompressor:通常分为解压缩以及后处理阶段(decoding stage and postprocessing stage).在解压缩阶段,首先做编码对应的解码, 再进行反量化, 以及反向的图像空间域的转换。其过程与compressor里的是一一对应的。其中,后处理可以来减少在压缩过程中产生的一些伪影等。

    小波变换(wavelet transform,WT)是一种新的变换分析方法,它继承和发展了短时傅立叶变换局部化的思想,同时又克服了窗口大小不随频率变化等缺点,能够提供一个随频率改变的“时间-频率”窗口,是进行信号时频分析和处理的理想工具。它的主要特点是通过变换能够充分突出问题某些方面的特征,能对时间(空间)频率的局部化分析,通过伸缩平移运算对信号(函数)逐步进行多尺度细化,最终达到高频处时间细分,低频处频率细分,能自动适应时频信号分析的要求,从而可聚焦到信号的任意细节,解决了Fourier变换的困难问题,成为继Fourier变换以来在科学方法上的重大突破。

2.仿真效果预览
matlab2022a仿真结果如下:

1.png
2.png
3.png
4.png

3.MATLAB核心程序

clear;
close all;
warning off;
addpath(genpath(pwd));
 
orimg=imread('lena.bmp');
imshow(orimg); 
title('原始图象'); 
orimage=double(orimg);
tImg=wavelet('2D D5',1,orimage,'sym');
tImage=uint8(tImg);
figure; 
imshow(tImage);
Img=zeros(512,512);
Img(1:256,1:256)=tImg(1:256,1:256);
[Image,sc,dmatrix]=double2uint(Img);
x=select(Image);
code=RLC(x);
 
%%%%%%%%%%%%%%%%%%%解码部分%%%%%%%%%%%%%%%%%%
Image=dec(code);
Image_r=uint2double(Image,sc,dmatrix);
IImg=wavelet('2D D5',-1,Image_r,'sym');
IImg=uint8(IImg);
figure;imshow(IImg);
title('恢复图象'); 
diff=orimg-IImg;
figure;imshow(diff);
e=sum(sum(diff))/(sum(sum(orimg)));
 
 
 
total_infor=512*512;
[code_r,code_c]=size(code);pp=(512*512)/code_c;
disp(['压缩前的图像信息大小为:',int2str(total_infor)]);
disp(['压缩后的图像信息大小为:',int2str(code_c)]);
disp(['压缩率为:',num2str(pp),':1']);
disp(['压缩误差为:',num2str(e)]);
A116
相关文章
|
1天前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
101 80
|
1天前
|
监控 算法 数据安全/隐私保护
基于扩频解扩+turbo译码的64QAM图传通信系统matlab误码率仿真,扩频参数可设置
该通信系统基于MATLAB 2022a仿真,适用于高要求的图像传输场景(如无人机、视频监控等),采用64QAM调制解调、扩频技术和Turbo译码提高抗干扰能力。发射端包括图像源、64QAM调制器、扩频器等;接收端则有解扩器、64QAM解调器和Turbo译码器等。核心程序实现图像传输的编码、调制、信道传输及解码,确保图像质量和传输可靠性。
25 16
|
6天前
|
供应链 算法 调度
排队算法的matlab仿真,带GUI界面
该程序使用MATLAB 2022A版本实现排队算法的仿真,并带有GUI界面。程序支持单队列单服务台、单队列多服务台和多队列多服务台三种排队方式。核心函数`func_mms2`通过模拟到达时间和服务时间,计算阻塞率和利用率。排队论研究系统中顾客和服务台的交互行为,广泛应用于通信网络、生产调度和服务行业等领域,旨在优化系统性能,减少等待时间,提高资源利用率。
|
1天前
|
机器学习/深度学习 人工智能 算法
基于GRNN广义回归网络和MFCC的语音情绪识别matlab仿真,对比SVM和KNN
该语音情绪识别算法基于MATLAB 2022a开发,可识别如悲伤等情绪,置信度高达0.9559。核心程序含中文注释及操作视频。算法采用MFCC特征提取与GRNN广义回归网络,通过预加重、分帧、加窗、FFT、梅尔滤波器组、对数运算和DCT等步骤处理语音信号,实现高效的情绪分类。
|
4月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
225 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
4月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
141 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
4月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
111 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
7月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
7月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)

热门文章

最新文章