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

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

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

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

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

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

图像的数字表示 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的彩色图。
AI 代码解读

数字图像压缩 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
AI 代码解读
目录
打赏
0
0
0
0
234
分享
相关文章
基于生物地理算法的MLP多层感知机优化matlab仿真
本程序基于生物地理算法(BBO)优化MLP多层感知机,通过MATLAB2022A实现随机数据点的趋势预测,并输出优化收敛曲线。BBO模拟物种在地理空间上的迁移、竞争与适应过程,以优化MLP的权重和偏置参数,提升预测性能。完整程序无水印,适用于机器学习和数据预测任务。
根据空域图信息构造飞机航线图以及飞行轨迹模拟matlab仿真
本程序基于MATLAB2022A实现空域图信息的飞机航线图构建与飞行轨迹模拟。空域图是航空领域的重要工具,包含航线、导航点、飞行高度层等信息。程序通过航路网络建模(节点为机场/导航点,边为航线段)构建航线图,并依据飞行规则规划航线。飞行轨迹模拟包括确定起飞点与目的地、设置航路点及飞行高度层,确保飞行安全。完整程序运行结果无水印,适用于航空飞行计划制定与研究。
基于MobileNet深度学习网络的活体人脸识别检测算法matlab仿真
本内容主要介绍一种基于MobileNet深度学习网络的活体人脸识别检测技术及MQAM调制类型识别方法。完整程序运行效果无水印,需使用Matlab2022a版本。核心代码包含详细中文注释与操作视频。理论概述中提到,传统人脸识别易受非活体攻击影响,而MobileNet通过轻量化的深度可分离卷积结构,在保证准确性的同时提升检测效率。活体人脸与非活体在纹理和光照上存在显著差异,MobileNet可有效提取人脸高级特征,为无线通信领域提供先进的调制类型识别方案。
泵浦光与斯托克斯光相遇耦合效应的matlab模拟与仿真
本程序使用MATLAB2022A模拟泵浦光与斯托克斯光在非线性光学材料中的耦合效应,基于拉曼散射原理。通过非线性薛定谔方程描述两者相互作用,实现能量转换与放大。核心代码展示了时间与距离上的光强变化,最终生成动态图像展示耦合过程。完整程序无水印,运行结果如附图所示。该仿真有助于理解非线性光学现象及其应用。
基于IEKF迭代扩展卡尔曼滤波算法的数据跟踪matlab仿真,对比EKF和UKF
本项目基于MATLAB2022A实现IEKF迭代扩展卡尔曼滤波算法的数据跟踪仿真,对比EKF和UKF的性能。通过仿真输出误差收敛曲线和误差协方差收敛曲线,展示三种滤波器的精度差异。核心程序包括数据处理、误差计算及可视化展示。IEKF通过多次迭代线性化过程,增强非线性处理能力;UKF避免线性化,使用sigma点直接处理非线性问题;EKF则通过一次线性化简化处理。
基于BBO生物地理优化的三维路径规划算法MATLAB仿真
本程序基于BBO生物地理优化算法,实现三维空间路径规划的MATLAB仿真(测试版本:MATLAB2022A)。通过起点与终点坐标输入,算法可生成避障最优路径,并输出优化收敛曲线。BBO算法将路径视为栖息地,利用迁移和变异操作迭代寻优。适应度函数综合路径长度与障碍物距离,确保路径最短且安全。程序运行结果完整、无水印,适用于科研与教学场景。
基于sift变换的农田杂草匹配定位算法matlab仿真
本项目基于SIFT算法实现农田杂草精准识别与定位,运行环境为Matlab2022a。完整程序无水印,提供详细中文注释及操作视频。核心步骤包括尺度空间极值检测、关键点定位、方向分配和特征描述符生成。该算法通过特征匹配实现杂草定位,适用于现代农业中的自动化防控。
基于入侵野草算法的KNN分类优化matlab仿真
本程序基于入侵野草算法(IWO)优化KNN分类器,通过模拟自然界中野草的扩散与竞争过程,寻找最优特征组合和超参数。核心步骤包括初始化、繁殖、变异和选择,以提升KNN分类效果。程序在MATLAB2022A上运行,展示了优化后的分类性能。该方法适用于高维数据和复杂分类任务,显著提高了分类准确性。
基于yolov2和googlenet网络的疲劳驾驶检测算法matlab仿真
本内容展示了基于深度学习的疲劳驾驶检测算法,包括算法运行效果预览(无水印)、Matlab 2022a 软件版本说明、部分核心程序(完整版含中文注释与操作视频)。理论部分详细阐述了疲劳检测原理,通过对比疲劳与正常状态下的特征差异,结合深度学习模型提取驾驶员面部特征变化。具体流程包括数据收集、预处理、模型训练与评估,使用数学公式描述损失函数和推理过程。课题基于 YOLOv2 和 GoogleNet,先用 YOLOv2 定位驾驶员面部区域,再由 GoogleNet 分析特征判断疲劳状态,提供高准确率与鲁棒性的检测方法。
|
7月前
|
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
287 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码

热门文章

最新文章