当前位置 : 主页 > 编程语言 > python >

【图像增强】基于深度学习的超分辨率图像增强含Matlab源码

来源:互联网 收集:自由互联 发布时间:2022-06-15
1 简介 数字时代早已来临,图像作为其中主要的信息传播媒介,已经广泛应用于各种场景。在众多领域中,人们对于图像的画质有较高的需求,比如医疗图像领域、卫星遥感领域等。因此对于


1 简介

数字时代早已来临,图像作为其中主要的信息传播媒介,已经广泛应用于各种场景。在众多领域中,人们对于图像的画质有较高的需求,比如医疗图像领域、卫星遥感领域等。因此对于高速发展的信息时代来说,低分辨率的图像已然很难满足特定场景的需求。超分辨率图像重建技术是通过一些算法将一张或者多张低分辨率图像重建出一张高分辨率图像。已经提出的基于卷积神经网络的图像超分辨率算法虽然解决了传统图像超分辨率重建算法存在鲁棒性不强、计算复杂等问题,但还是存在参数较多、重建后图像不清晰等现象,而且对于细节比较丰富的图像存在重建能力差,视觉效果差的问题。为解决以上问题,本文深入研究深度学习中的卷积神经网络在图像超分辨率领域的应用效果。

【图像增强】基于深度学习的超分辨率图像增强含Matlab源码_卷积神经网络

【图像增强】基于深度学习的超分辨率图像增强含Matlab源码_图像重建_02

【图像增强】基于深度学习的超分辨率图像增强含Matlab源码_图像重建_03

【图像增强】基于深度学习的超分辨率图像增强含Matlab源码_图像重建_04

【图像增强】基于深度学习的超分辨率图像增强含Matlab源码_卷积神经网络_05

【图像增强】基于深度学习的超分辨率图像增强含Matlab源码_深度学习_06

【图像增强】基于深度学习的超分辨率图像增强含Matlab源码_卷积神经网络_07

【图像增强】基于深度学习的超分辨率图像增强含Matlab源码_深度学习_08

【图像增强】基于深度学习的超分辨率图像增强含Matlab源码_深度学习_09

【图像增强】基于深度学习的超分辨率图像增强含Matlab源码_图像重建_10

【图像增强】基于深度学习的超分辨率图像增强含Matlab源码_卷积神经网络_11

【图像增强】基于深度学习的超分辨率图像增强含Matlab源码_卷积神经网络_12

2 部分代码

% =========================================================================
% Test code for Super-Resolution Convolutional Neural Networks (SRCNN)
% =========================================================================
close all;
clear all;
%% read ground truth image
im = imread('Set5\butterfly_GT.bmp');
%im = imread('Set14\zebra.bmp');
%% set parameters
up_scale = 3;
model = 'model\9-5-5(ImageNet)\x3.mat';
% up_scale = 3;
% model = 'model\9-3-5(ImageNet)\x3.mat';
% up_scale = 3;
% model = 'model\9-1-5(91 images)\x3.mat';
% up_scale = 2;
% model = 'model\9-5-5(ImageNet)\x2.mat';
% up_scale = 4;
% model = 'model\9-5-5(ImageNet)\x4.mat';
%% work on illuminance only
if size(im,3)>1
im = rgb2ycbcr(im);
im = im(:, :, 1);
end
im_gnd = modcrop(im, up_scale);
im_gnd = single(im_gnd)/255;
%% bicubic interpolation
im_l = imresize(im_gnd, 1/up_scale, 'bicubic');
im_b = imresize(im_l, up_scale, 'bicubic');
%% SRCNN
im_h = SRCNN(model, im_b);
%% remove border
im_h = shave(uint8(im_h * 255), [up_scale, up_scale]);
im_gnd = shave(uint8(im_gnd * 255), [up_scale, up_scale]);
im_b = shave(uint8(im_b * 255), [up_scale, up_scale]);
%% compute PSNR
psnr_bic = compute_psnr(im_gnd,im_b);
psnr_srcnn = compute_psnr(im_gnd,im_h);
%% show results
fprintf('PSNR for Bicubic Interpolation: %f dB\n', psnr_bic);
fprintf('PSNR for SRCNN Reconstruction: %f dB\n', psnr_srcnn);
figure, imshow(im_b); title('双三次插值');
figure, imshow(im_h); title('SRCNN重建');
%imwrite(im_b, ['Bicubic Interpolation' '.bmp']);
%imwrite(im_h, ['SRCNN Reconstruction' '.bmp']);

3 仿真结果

【图像增强】基于深度学习的超分辨率图像增强含Matlab源码_卷积神经网络_13

【图像增强】基于深度学习的超分辨率图像增强含Matlab源码_卷积神经网络_14

【图像增强】基于深度学习的超分辨率图像增强含Matlab源码_卷积神经网络_15

【图像增强】基于深度学习的超分辨率图像增强含Matlab源码_卷积神经网络_16

4 参考文献

[1]王慧云. 基于深度学习的图像超分辨率重建[D]. 电子科技大学, 2020.

[2]黄思炜. 基于深度学习的超分辨率图像重建算法研究[D]. 太原理工大学.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【图像增强】基于深度学习的超分辨率图像增强含Matlab源码_图像重建_17

【图像增强】基于深度学习的超分辨率图像增强含Matlab源码_深度学习_18

【本文由:香港云服务器 http://www.558idc.com/ne.html 复制请保留原URL】
网友评论