【图像重建】基于小波变换图像分解重建(PSNR对比)附matlab代码

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 【图像重建】基于小波变换图像分解重建(PSNR对比)附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

⛄ 内容介绍

基于小波变换的图像分解和重建是一种常用的,其中峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)常被用来评估重建图像与原始图像之间的质差异。以下是一种基本的基于小波变换的图像解和重建步骤,以及如何使用PSNR进行质量对比的方法:

  1. 选择合适的小波函数和分解层数。常见的小波函数包括haar、db1(Daubechies-1)、db2等,分解层数定义了图像分解的级别。
  2. 将原始图像应用小波变换,得到图像小波系数。这可以通过将图像分解为不同尺度和方向上的频带来实现。
  3. 根据需求,对小波系数进行处理,例如对低频系数进行细节清晰化、对高频系数进行压缩等。
  4. 使用处理后的小波系数进行图像重建,将系数应用逆小波变换。
  5. 计算重建图像与原始图像之间的PSNR,以衡量两者之间的图像质量差异。PSNR的计算公式为:PSNR = 10 * log10(MAX^2 / MSE),其中MAX是像素最值(通常为255),MSE是均方误差,用于衡量两幅图像之间的差异。
  6. 对比不同参数、不同小波函数或不同分解层数对重建图像质量的影响,通过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.元胞自动机交通流 人群疏散 病毒扩散 晶体生长


相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
3月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
200 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
3月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
90 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
3月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
129 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
6月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
6月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
|
6月前
|
Serverless
基于Logistic函数的负荷需求响应(matlab代码)
基于Logistic函数的负荷需求响应(matlab代码)
|
6月前
|
供应链 算法
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)
|
6月前
|
算法 调度
基于多目标粒子群算法冷热电联供综合能源系统运行优化(matlab代码)
基于多目标粒子群算法冷热电联供综合能源系统运行优化(matlab代码)
|
6月前
|
算法 调度 SoC
电动汽车充放电V2G模型(Matlab代码)
电动汽车充放电V2G模型(Matlab代码)