基于二维小波变化的图像压缩解压缩,并使用PSNR评价图像恢复质量

目录

1.二维小波变换

二、PSNR评价图像小波变换重构后的恢复质量

三、MATLAB核心程序

四、MATLAB仿真结果


       图像压缩与解压缩是一种重要的技术,可以有效地减少图像数据的存储空间和提高传输效率。二维小波变换是一种常用的图像压缩技术,它可以将图像转换为多尺度的小波系数,其中低频分量包含图像的大部分能量,而高频分量则包含图像的细节信息。通过对这些小波系数进行编码和传输,可以实现图像的压缩。解压缩时,通过对接收到的数据进行解码,并重构出原始图像。

1.二维小波变换

       二维小波变换是一种频域变换方法,它将图像分解成多个频段,每个频段都对应着图像的一个特定方向上的局部特征。通过对这些频段的小波系数进行编码和传输,可以实现图像的压缩。具体来说,二维小波变换将图像分解成四个子带:水平低频子带、垂直低频子带、对角线低频子带和三个高频子带(水平高频子带、垂直高频子带、对角线高频子带)。其中,低频子带包含图像的大部分能量,而高频子带则包含图像的细节信息。

       在进行图像压缩时,需要对这些小波系数进行编码和传输。一种常用的方法是采用离散余弦变换(DCT)对小波系数进行进一步变换,并对变换后的系数进行量化,从而得到一组近似的小波系数。这些近似的小波系数可以用来重构出原始图像。解压缩时,需要对接收到的数据进行解码,并重构出原始图像。具体来说,首先需要对接收到的数据进行解码,得到一组近似的小波系数;然后,利用这些近似的小波系数进行逆变换,得到重构的图像。

      二维小波变换的基本原理如下:

小波变换是可逆的,进行小波分解得到的子图可通过组合重构原图,其实现原理如下:

二、PSNR评价图像小波变换重构后的恢复质量

      PSNRPSNR全称为“Peak Signal-to-Noise Ratio”,中文意思即为峰值信噪比,是衡量图像质量的指标之一。PSNR是基于MSE(均方误差)定义,对给定一个大小为m*n的原始图像PSNR越大,表示图像恢复得越好。PSNR的计算公式如下:

       总之,基于二维小波变化的图像压缩解压缩是一种有效的技术,可以实现图像的压缩和解压缩。通过对小波系数进行编码和传输和解码,可以有效地减少图像数据的存储空间和提高传输效率。PSNR是一种常用的评价图像恢复质量的指标,可以用来衡量恢复的图像质量。

三、MATLAB核心程序

小波变换:

function [dwc1,dwc2]=mydwt2(image,width,height)

dwc1=zeros(height,width);
dwc2=zeros(height,width);

h=[0.482962913145,0.836516303738,0.224143868042,-0.129409522551];
g=[-0.129409522551,-0.224143868042,0.836516303738,-0.482962913145];

image2=zeros(height,width+5);
image2(:,1)=image(:,1);
image2(:,2)=image(:,1);
image2(:,width+3)=image(:,width);
image2(:,width+4)=image(:,width);
image2(:,width+5)=image(:,width);
image2(:,3:width+2)=image(:,:);

for i=1:height
    for j=1:width
        sum=h(1)*image2(i,j+2)+h(2)*image2(i,j+3)+h(3)*image2(i,j+4)+h(4)*image2(i,j+5);
        dwc1(i,j)=sum;
    end
end


for i=1:height
    for j=1:width
        sum=g(1)*image2(i,j)+g(2)*image2(i,j+1)+g(3)*image2(i,j+2)+g(4)*image2(i,j+3);
        dwc2(i,j)=sum;
    end
end

end
3061

小波重构:

function [idwc]=myidwt2(L,H,width,height)

idwc1=zeros(height,width);
idwc2=zeros(height,width);

% h=[0.482962913145,0.836516303738,0.224143868042,-0.129409522551];
% g=[-0.129409522551,-0.224143868042,0.836516303738,-0.482962913145];

h=[-0.129409522551,0.224143868042,0.836516303738,0.482962913145];
g=[-0.482962913145,0.836516303738,-0.224143868042,-0.129409522551];

image2=zeros(height,width+3);
% image2(:,1)=L(:,1);
% image2(:,2)=L(:,1);
% image2(:,3)=L(:,1);
image2(:,1)=0;
image2(:,2)=0;
image2(:,3)=0;

image2(:,4:width+3)=L(:,:);

for i=1:height
    for j=1:width
        sum=h(1)*image2(i,j)+h(2)*image2(i,j+1)+h(3)*image2(i,j+2)+h(4)*image2(i,j+3);
        idwc1(i,j)=sum;
    end
end

image2=zeros(height,width+3);
%image2(:,1)=H(:,1);
image2(:,1)=0;
image2(:,width+2)=H(:,width);
image2(:,width+3)=H(:,width);
image2(:,2:width+1)=H(:,:);


for i=1:height
    for j=1:width
        sum=g(1)*image2(i,j)+g(2)*image2(i,j+1)+g(3)*image2(i,j+2)+g(4)*image2(i,3);
        idwc2(i,j)=sum;
    end
end

idwc=idwc1+idwc2;

end

四、MATLAB仿真结果

原图:

小波变换

小波重构

PSNR:70db

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值