【图像重建】基于matlab迭代步长自适应图像超分辨重建【含Matlab源码 048期】
一、获取代码方式
获取代码方式1:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。
获取代码方式2:
完整代码已上传我的资源:【图像重建】基于matlab迭代步长自适应图像超分辨重建【含Matlab源码 048期】
备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);
二、迭代步长自适应简介
传统的超分辨重建算法往往采用梯度下降法进行求解,迭代时步长往往通过经验确定。而且不同的图像的最优步长往往不相同。步长过大会导致发散,步长过小会导致收敛缓慢。本算法基于对正则化超分辨重建算法实现的基础上,对步长的选取进行了优化,推导出了每次迭代时的最优步长大小,并将其自适应化,改进了超分辨算法的收敛性,从而能够在更短的时间内取得更加精确的重建结果。相关具体内容请参考对应的论文:Yingqian Wang, Jungang Yang, Chao Xiao, and Wei An, “Fast convergence strategy for multi-image superresolution via adaptive line search,” IEEE Access, vol. 6, no. 1, pp. 9129-9139.
三、部分源代码
clear all
clcfilename = 'Set';
files = dir(fullfile( filename,'*.bmp'));
file_num = 2; % different number corresponds to defferent test images in 'Set'
reg_term = 1; %regularization term: 1-BTV, 2-TikhonovImage =imread([filename,'\',files(file_num).name]);
SZ = size(size(Image));if (SZ(2)==2) % turn grayscale image to RGB imagefor qw = 1:3IMAGE (:,:,qw) = Image;end
elseIMAGE = Image;
end%% Image Degradation
D = [1,1;-2,1;-1,-3;3,-2]; % Shearing shift
Gau = fspecial( 'gaussian', [3 3], 1); % Gaussian bluring kernel
spf = 2; % sampling factor
sigma2 = 1; % variation of noise
LR = ImDegrate(IMAGE,D,Gau,spf,sigma2); % image degradation function%% Turn RGB to YCbCr, and only SR the Y component
[~, ~, ~, M] = size(LR);
for w = 1:MLR(:,:,:,w) = rgb2ycbcr(uint8( squeeze(LR(:,:,:,w))));
endmaxiter = 10; % maximum number of iterationy1(:,:,:) = LR(:,:,1,:);
y2(:,:,:) = LR(:,:,2,:);
y3(:,:,:) = LR(:,:,3,:);HRitp1 = imresize(y1(:,:,1), spf, 'bicubic'); % bicubic interpolation
HRitp1 = ImWarp(HRitp1, -D(1,1), -D(1,2)); % shift recoveringI1 = Wang_SR(HRitp1, y1, D, Gau, spf, maxiter, reg_term); %Our proposed SR methodHRitp2 = imresize(y2(:,:,1), spf, 'bicubic');
HRitp2 = ImWarp(HRitp2, -D(1,1), -D(1,2));
I2 = HRitp2;HRitp3 = imresize(y3(:,:,1), spf, 'bicubic');
HRitp3 = ImWarp(HRitp3, -D(1,1), -D(1,2));
I3 = HRitp3;ImZ(:, :, 1) = I1;
ImZ(:, :, 2) = I2;
ImZ(:, :, 3) = I3;ImZ = ycbcr2rgb(uint8( ImZ)); % Turn YCbCr to RGBfigure; imshow( uint8( ImZ ) ); title('Wang et al.');
figure; imshow( uint8( IMAGE ) ); title('groundtruth');%% EvaluationIf = double(ImZ); %output image
Is = double(IMAGE); %reference image
[row,col,~]=size(If); %RMSE
rmse=0;
for color = 1:3Ifc = If(:,:,color); Isc = Is(:,:,color);SSE=sum(sum((Ifc-Isc).^2));rmsec=sqrt(SSE/(row*col));rmse = rmse+rmsec/3;
end
rmse%PSNR
psnr=0;
for color = 1:3Ifc = If(:,:,color); Isc = Is(:,:,color);maxIs = max(max(Isc));minIs = min(min(Isc));PSNRc = 10*log10((row*col*(maxIs-minIs)^2)/sum(sum((Ifc-Isc).^2)));psnr = psnr+PSNRc/3;
end
psnr%SSIM
ssim=0;
for color = 1:3Ifc = uint8(If(:,:,color)); Isc = uint8(Is(:,:,color));ssimc = cal_ssim(Ifc, Isc, 0, 0);ssim = ssim + ssimc/3;
end
ssim
function ssim = cal_ssim( im1, im2, b_row, b_col)[h, w, ch] = size( im1 );
ssim = 0;
if (ch == 1)ssim = ssim_index ( im1(b_row+1:h-b_row, b_col+1:w-b_col), im2(b_row+1:h-b_row,b_col+1:w-b_col));
elsefor i = 1:chssim = ssim + ssim_index ( im1(b_row+1:h-b_row, b_col+1:w-b_col, i), im2(b_row+1:h-b_row,b_col+1:w-b_col, i));endssim = ssim/3;
end
returnfunction [mssim, ssim_map] = ssim_index(img1, img2, K, window, L)if (nargin < 2 || nargin > 5)mssim = -Inf;ssim_map = -Inf;return;
endif (size(img1) ~= size(img2))mssim = -Inf;ssim_map = -Inf;return;
end[M N] = size(img1);if (nargin == 2)if ((M < 11) || (N < 11))mssim = -Inf;ssim_map = -Inf;returnendwindow = fspecial('gaussian', 11, 1.5); %K(1) = 0.01; % default settingsK(2) = 0.03; %L = 255; %
endif (nargin == 3)if ((M < 11) || (N < 11))mssim = -Inf;ssim_map = -Inf;returnendwindow = fspecial('gaussian', 11, 1.5);L = 255;if (length(K) == 2)if (K(1) < 0 || K(2) < 0)mssim = -Inf;ssim_map = -Inf;return;endelsemssim = -Inf;ssim_map = -Inf;return;end
endif (nargin == 4)[H W] = size(window);if ((H*W) < 4 || (H > M) || (W > N))mssim = -Inf;ssim_map = -Inf;returnendL = 255;if (length(K) == 2)if (K(1) < 0 || K(2) < 0)mssim = -Inf;ssim_map = -Inf;return;endelsemssim = -Inf;ssim_map = -Inf;return;end
endif (nargin == 5)[H W] = size(window);if ((H*W) < 4 || (H > M) || (W > N))mssim = -Inf;ssim_map = -Inf;returnendif (length(K) == 2)if (K(1) < 0 || K(2) < 0)mssim = -Inf;ssim_map = -Inf;return;endelsemssim = -Inf;ssim_map = -Inf;return;end
endimg1 = double(img1);
img2 = double(img2);% automatic downsampling
f = max(1,round(min(M,N)/256));
%downsampling by f
%use a simple low-pass filter
if(f>1)lpf = ones(f,f);lpf = lpf/sum(lpf(:));img1 = imfilter(img1,lpf,'symmetric','same');img2 = imfilter(img2,lpf,'symmetric','same');img1 = img1(1:f:end,1:f:end);img2 = img2(1:f:end,1:f:end);
endC1 = (K(1)*L)^2;
C2 = (K(2)*L)^2;
window = window/sum(sum(window));mu1 = filter2(window, img1, 'valid');
mu2 = filter2(window, img2, 'valid');
mu1_sq = mu1.*mu1;
mu2_sq = mu2.*mu2;
mu1_mu2 = mu1.*mu2;
sigma1_sq = filter2(window, img1.*img1, 'valid') - mu1_sq;
sigma2_sq = filter2(window, img2.*img2, 'valid') - mu2_sq;
sigma12 = filter2(window, img1.*img2, 'valid') - mu1_mu2;if (C1 > 0 && C2 > 0)ssim_map = ((2*mu1_mu2 + C1).*(2*sigma12 + C2))./((mu1_sq + mu2_sq + C1).*(sigma1_sq + sigma2_sq + C2));
elsenumerator1 = 2*mu1_mu2 + C1;numerator2 = 2*sigma12 + C2;denominator1 = mu1_sq + mu2_sq + C1;denominator2 = sigma1_sq + sigma2_sq + C2;ssim_map = ones(size(mu1));index = (denominator1.*denominator2 > 0);ssim_map(index) = (numerator1(index).*numerator2(index))./(denominator1(index).*denominator2(index));index = (denominator1 ~= 0) & (denominator2 == 0);ssim_map(index) = numerator1(index)./denominator1(index);
endmssim = mean2(ssim_map);return
四、运行结果
五、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
【图像重建】基于matlab迭代步长自适应图像超分辨重建【含Matlab源码 048期】相关推荐
- 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】
一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...
- 【Matlab语音处理】声音信号频谱分析仪【含GUI源码 325期】
一.代码运行视频(哔哩哔哩) [Matlab语音处理]声音信号频谱分析仪[含GUI源码 325期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊, ...
- 【Matlab图像检索】综合特征图像检索【含GUI源码 395期】
一.代码运行视频(哔哩哔哩) [Matlab图像检索]综合特征图像检索[含GUI源码 395期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...
- 【Matlab肌电信号】肌电信号处理【含GUI源码 966期】
一.代码运行视频(哔哩哔哩) [Matlab肌电信号]肌电信号处理[含GUI源码 966期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余继周,杨 ...
- 【Matlab条形码识别】二维条形码识别【含GUI源码 607期】
一.代码运行视频(哔哩哔哩) [Matlab条形码识别]二维条形码识别[含GUI源码 607期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...
- Python图像识别实战(三):基于OpenCV实现批量单图像超分辨重建(附源码和实现效果)
前面我介绍了可视化的一些方法以及机器学习在预测方面的应用,分为分类问题(预测值是离散型)和回归问题(预测值是连续型)(具体见之前的文章). 从本期开始,我将做一个关于图像识别的系列文章,让读者慢慢理解 ...
- 【Matlab图像加密】正交拉丁方置乱算法图像加解密【含GUI源码 182期】
一.代码运行视频(哔哩哔哩) [Matlab图像加密]正交拉丁方置乱算法图像加解密[含GUI源码 182期] 二.matlab版本及参考文献 一.代码运行视频(哔哩哔哩) [Matlab图像处理]自动 ...
- 【Matlab车牌识别】停车计费系统【含GUI源码 735期】
一.代码运行视频(哔哩哔哩) [Matlab车牌识别]停车计费系统[含GUI源码 735期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MATLA ...
- 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】
一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...
- 【Matlab语音分析】语音信号分析【含GUI源码 1718期】
一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...
最新文章
- android弹出窗口的实现(PopupWindow)
- 如何为你的回归问题选择最合适的机器学习方法?
- 四十三、Linux磁盘管理和Shell编程
- mysql 不在另一张表_mysql查询在一张表不在另外一张表的记录
- 安卓手机 Python 自动化测试
- oracle adg 备份,Oracle Physical Dataguard环境使用RMAN备份和恢复
- C语言计算1+1/2+1/3+......+1/100
- Node.js的集群功能以及在Express的配置
- 2008是中国的奥运年
- SG90系列 MG系列马达
- go mysql 中间件_GitHub - wushilong/go-sharding: Mysql 分库分表中间件
- 第五人格显示服务器连接失败,第五人格网络连接失败怎么回事
- Sunday算法特征码搜索C++(支持通配符)
- 中国山梨酸市场运营动态分析与前景方向预测报告2022-2028年
- python自学之《21天学通Python》(2)
- 限速之令牌桶和漏桶算法
- 淘晶驰串口屏_提示p0.pic 初始值无效:图片ID无效
- ddos流量攻击有多少G_如何防护ddos流量攻击?
- 计算机导师招生,计算机学院2017年具备招生资格的硕士研究生导师一览表.DOC
- 完整版的squid代理服务器搭建实现(ip,域名,上网时间限制)
热门文章
- centos7.4下的KVM虚拟机安装使用
- vue —— 利用 viewport 进行适配
- 一些学习的网址和资料
- 使用bootstrap建立响应式网页——头部导航栏
- 浅谈压缩感知(十一):凸优化
- DOS命令行使用pscp实现远程文件和文件夹传输(转)
- Python学习笔记之 高级变量类型 列表,元组,字典,字符串的相关常用 操作
- latex longtable and supertabular 跨页表格
- 数字孪生将这样改变我们的工作与生活
- Atitit index threod type 索引原理与类型 种类 目录 1.1. 每个文档在经过底层的存储引擎持久化后	1 2. MongoDB索引类型	2 2.1. 包括单字段索引、复合索引