✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
基于小波变换的图像分解和重建是一种常用的,其中峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)常被用来评估重建图像与原始图像之间的质差异。以下是一种基本的基于小波变换的图像解和重建步骤,以及如何使用PSNR进行质量对比的方法:
-
选择合适的小波函数和分解层数。常见的小波函数包括haar、db1(Daubechies-1)、db2等,分解层数定义了图像分解的级别。
-
将原始图像应用小波变换,得到图像小波系数。这可以通过将图像分解为不同尺度和方向上的频带来实现。
-
根据需求,对小波系数进行处理,例如对低频系数进行细节清晰化、对高频系数进行压缩等。
-
使用处理后的小波系数进行图像重建,将系数应用逆小波变换。
-
计算重建图像与原始图像之间的PSNR,以衡量两者之间的图像质量差异。PSNR的计算公式为:PSNR = 10 * log10(MAX^2 / MSE),其中MAX是像素最值(通常为255),MSE是均方误差,用于衡量两幅图像之间的差异。
-
对比不同参数、不同小波函数或不同分解层数对重建图像质量的影响,通过PSNR值的变化来评估重建结果的好坏。
⛄ 部分代码
clear all;
X=imread('1.bmp','bmp');
subplot(321);imshow(X);
title('原始图像');
%三级小波分解及显示
[c,s]=wavedec2(X,3,'db2');
ca3=appcoef2(c,s,'db2',3);
ch3=detcoef2('h',c,s,3);
cv3=detcoef2('v',c,s,3);
cd3=detcoef2('d',c,s,3);
ch2=detcoef2('h',c,s,2);
cv2=detcoef2('v',c,s,2);
cd2=detcoef2('d',c,s,2);
ch1=detcoef2('h',c,s,1);
cv1=detcoef2('v',c,s,1);
cd1=detcoef2('d',c,s,1);
A2=[ca3*4,ch3*4;cv3*4,cd3*4]
%显示分解结果
k=s(2,1)*2-s(3,1)
ch2=padarray(ch2,[k k],1,'post');
cv2=padarray(cv2,[k k],1,'post');
cd2=padarray(cd2,[k k],1,'post');
A1=[A2,ch2*4;cv2*4,cd2*4];
k=s(2,1)*4-s(4,1)
ch1=padarray(ch1,[k k],1,'post');
cv1=padarray(cv1,[k k],1,'post');
cd1=padarray(cd1,[k k],1,'post');
A=[A1,ch1*4;cv1*4,cd1*4]
min=min(A(:));
max=max(A(:));
subplot(322);imshow(A,[min max]);
title('小波变换的三级分解图');
%尺度为1的低频分量重构
[c s]=wavedec2(X,3,'db2');
siz1=s(size(s,1),:);
ca1=appcoef2(c,s,'db2',1);
a1=upcoef2('a',ca1,'db2',1,siz1);
nbc1=size(X,1);
subplot(323);
RL1=wcodemat(a1,nbc1)
image(RL1);
title('LL1小波系数重构图')
%尺度为2的低频分量重构
[c s]=wavedec2(X,3,'db2');
siz2=s(size(s,2),:);
ca2=appcoef2(c,s,'db2',2);
a2=upcoef2('a',ca2,'db2',2,siz2);
nbc2=size(X,2);
subplot(324);
RL2=wcodemat(a2,nbc2)
image(RL2);
title('LL2小波系数重构图')
%尺度为3的低频分量重构
[c s]=wavedec2(X,3,'db2');
siz3=s(size(s,3),:);
ca3=appcoef2(c,s,'db2',3);
a3=upcoef2('a',ca3,'db2',3,siz3);
nbc3=size(X,3);
subplot(325);
RL3=wcodemat(a3,nbc3)
image(RL3);
title('LL3小波系数重构图')
% %LL1重构图像与原始图像峰值信噪比
PSNR1=psnr(X,RL1);
PSNR1=PSNR1
% %LL2重构图像与原始图像峰值信噪比
PSNR2=psnr(X,RL2);
PSNR2=PSNR2
% %LL3重构图像与原始图像峰值信噪比
PSNR3=psnr(X,RL3);
PSNR3=PSNR3
%
% %LL1重构图像与原始图像峰值信噪比
% [m,n]=size(RL1);
% mse=0;
% for i=1:m
% for j=1:n
% a=(X(i,j)-RL1(i,j))^2;
% b=im2double(a);
% mse=mse+b;
% end
% end
% mse=mse/(256*256);
% PSNR1=10*log10((255*255)/mse)
% %LL2重构图像与原始图像峰值信噪比
% [m,n]=size(RL2);
% mse=0;
% for i=1:m
% for j=1:n
% a=(X(i,j)-RL2(i,j))^2;
% b=im2double(a);
% mse=mse+b;
% end
% end
% mse=mse/(256*256);
% PSNR2=10*log10((255*255)/mse)
% %LL3重构图像与原始图像峰值信噪比
% [m,n]=size(RL3);
% mse=0;
% for i=1:m
% for j=1:n
% a=(X(i,j)-RL3(i,j))^2;
% b=im2double(a);
% mse=mse+b;
% end
% end
% mse=mse/(256*256);
% PSNR3=10*log10((255*255)/mse)
⛄ 运行结果
⛄ 参考文献
[1] 王翰林,周宇轩,王伟.基于curvelet变换快速迭代收缩阈值算法的压缩采样磁共振图像重建[J].北京生物医学工程, 2018.
[2] 叶双清,杨晓梅.基于小波变换和非局部平均的超分辨率图像重建[J].计算机应用, 2014, 34(4):5.DOI:10.11772/j.issn.1001-9081.2014.04.1182.
[3] 杨莹,牟轩沁,罗涛,等.基于小波变换的X射线图像超动态范围重建[C]//全国省.中国图象图形学会;中国体视学会;兰州交通大学, 2008.DOI:10.1360/972009-1549.
⛳️ 代码获取关注我
❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料
🍅 仿真咨询
1.卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
2.图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
3.旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划
4.无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配
5.传感器部署优化、通信协议优化、路由优化、目标定位
6.信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号
7.生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化
8.微电网优化、无功优化、配电网重构、储能配置
9.元胞自动机交通流 人群疏散 病毒扩散 晶体生长