RDN的数据预处理

BD的三倍的

function Prepare_TrainData_HR_LR_BD()
%% settings
path_save = './DIV2K';
path_src = './DIV2K/DIV2K_HR';
ext               =  {'*.jpg','*.png','*.bmp'};
filepaths           =  [];
for i = 1 : length(ext)
    filepaths = cat(1,filepaths, dir(fullfile(path_src, ext{i})));
end
nb_im = length(filepaths);
DIV2K_HR = [];

for idx_im = 1:nb_im
    fprintf('Read HR :%d\n', idx_im);
    ImHR = imread(fullfile(path_src, filepaths(idx_im).name));
    DIV2K_HR{idx_im} = ImHR;
end
%% generate and save LR via imresize() with Bicubic
kernelsize = 7;
sigma = 1.6;
for IdxIm = 1:nb_im
    fprintf('IdxIm=%d\n', IdxIm);
    ImHR = DIV2K_HR{IdxIm};
    ImLRx3 = imresize_BD(ImHR, 3, kernelsize, sigma);
    % name image
    digit = IdxIm;
    fileName = num2str(IdxIm);
    while digit < 1000
        fileName = ['0', fileName];
        digit = digit*10;
    end

    FolderLRx3 = fullfile(path_save, 'DIV2K_LR_bicubic', 'X3');
    
    if ~exist(FolderLRx3)
        mkdir(FolderLRx3)
    end

    NameLRx3 = fullfile(FolderLRx3, [fileName, 'x3BD.png']);
    % save image
    imwrite(ImLRx3, NameLRx3, 'png');
end


end

function ImLR = imresize_BD(ImHR, scale, kernelsize, sigma)
% ImLR and ImHR are uint8 data
% downsample by Bicubic
kernel  = fspecial('gaussian',kernelsize,sigma);
blur_HR = imfilter(ImHR,kernel,'replicate');
ImLR = imresize(blur_HR, 1/scale, 'nearest');

end

BD的二三四倍

function Prepare_TrainData_HR_LR_BD()
%% settings
path_save = './DIV2K';
path_src = './DIV2K/DIV2K_HR';
ext               =  {'*.jpg','*.png','*.bmp'};
filepaths           =  [];
for i = 1 : length(ext)
    filepaths = cat(1,filepaths, dir(fullfile(path_src, ext{i})));
end
nb_im = length(filepaths);
DIV2K_HR = [];

for idx_im = 1:nb_im
    fprintf('Read HR :%d\n', idx_im);
    ImHR = imread(fullfile(path_src, filepaths(idx_im).name));
    DIV2K_HR{idx_im} = ImHR;
end
%% generate and save LR via imresize() with Bicubic
kernelsize = 7;
sigma = 1.6;
for IdxIm = 1:nb_im
    fprintf('IdxIm=%d\n', IdxIm);
    ImHR = DIV2K_HR{IdxIm};
    ImLRx4 = imresize_BD(ImHR, 4, kernelsize, sigma);
	ImLRx3 = imresize_BD(ImHR, 3, kernelsize, sigma);
	ImLRx2 = imresize_BD(ImHR, 2, kernelsize, sigma);
    % name image
    digit = IdxIm;
    fileName = num2str(IdxIm);
    while digit < 1000
        fileName = ['0', fileName];
        digit = digit*10;
    end

    FolderLRx4 = fullfile(path_save, 'DIV2K_LR_bicubic', 'X4');
    FolderLRx3 = fullfile(path_save, 'DIV2K_LR_bicubic', 'X3');
	FolderLRx2 = fullfile(path_save, 'DIV2K_LR_bicubic', 'X2');
    if ~exist(FolderLRx4)
        mkdir(FolderLRx4)
    end
	if ~exist(FolderLRx3)
        mkdir(FolderLRx3)
    end
	if ~exist(FolderLRx2)
        mkdir(FolderLRx2)
    end
    NameLRx4 = fullfile(FolderLRx4, [fileName, 'x4BD.png']);
	NameLRx3 = fullfile(FolderLRx3, [fileName, 'x3BD.png']);
	NameLRx2 = fullfile(FolderLRx2, [fileName, 'x2BD.png']);
    % save image
    imwrite(ImLRx4, NameLRx4, 'png');
	imwrite(ImLRx3, NameLRx3, 'png');
	imwrite(ImLRx2, NameLRx2, 'png');
end


end

function ImLR = imresize_BD(ImHR, scale, kernelsize, sigma)
% ImLR and ImHR are uint8 data
% downsample by Bicubic
kernel  = fspecial('gaussian',kernelsize,sigma);
blur_HR = imfilter(ImHR,kernel,'replicate');
ImLR = imresize(blur_HR, 1/scale, 'nearest');

end

BI的234倍

```bash

```bash
function Prepare_TrainData_HR_LR_BI()
%% settings
path_save = './DIV2K';
path_src = './DIV2K/DIV2K_HR';
ext               =  {'*.jpg','*.png','*.bmp'};
filepaths           =  [];
for i = 1 : length(ext)
    filepaths = cat(1,filepaths, dir(fullfile(path_src, ext{i})));
end
nb_im = length(filepaths);
DIV2K_HR = [];

for idx_im = 1:nb_im
    fprintf('Read HR :%d\n', idx_im);
    ImHR = imread(fullfile(path_src, filepaths(idx_im).name));
    DIV2K_HR{idx_im} = ImHR;
end
%% generate and save LR via imresize() with Bicubic

for IdxIm = 1:nb_im
    fprintf('IdxIm=%d\n', IdxIm);
    ImHR = DIV2K_HR{IdxIm};
    
    ImLRx2 = imresize(ImHR, 1/2, 'bicubic');
    ImLRx3 = imresize(ImHR, 1/3, 'bicubic');
    ImLRx4 = imresize(ImHR, 1/4, 'bicubic');
    % name image
    digit = IdxIm;
    fileName = num2str(IdxIm);
    while digit < 1000
        fileName = ['0', fileName];
        digit = digit*10;
    end

    FolderLRx2 = fullfile(path_save, 'DIV2K_LR_bicubic', 'X2');
    FolderLRx3 = fullfile(path_save, 'DIV2K_LR_bicubic', 'X3');
    FolderLRx4 = fullfile(path_save, 'DIV2K_LR_bicubic', 'X4');

    if ~exist(FolderLRx2)
        mkdir(FolderLRx2)
    end
    if ~exist(FolderLRx3)
        mkdir(FolderLRx3)
    end
    if ~exist(FolderLRx4)
        mkdir(FolderLRx4)
    end

    NameLRx2 = fullfile(FolderLRx2, [fileName, 'x2.png']);
    NameLRx3 = fullfile(FolderLRx3, [fileName, 'x3.png']);
    NameLRx4 = fullfile(FolderLRx4, [fileName, 'x4.png']);
    % save image
 
    imwrite(ImLRx2, NameLRx2, 'png');
    imwrite(ImLRx3, NameLRx3, 'png');
    imwrite(ImLRx4, NameLRx4, 'png');
end

end

DN的三倍

function Prepare_TrainData_HR_LR_DN()
%% settings
path_save = './DIV2K';
path_src = './DIV2K/DIV2K_HR';
ext               =  {'*.jpg','*.png','*.bmp'};
filepaths           =  [];
for i = 1 : length(ext)
    filepaths = cat(1,filepaths, dir(fullfile(path_src, ext{i})));
end
nb_im = length(filepaths);
DIV2K_HR = [];

for idx_im = 1:nb_im
    fprintf('Read HR :%d\n', idx_im);
    ImHR = imread(fullfile(path_src, filepaths(idx_im).name));
    DIV2K_HR{idx_im} = ImHR;
end
%% generate and save LR via imresize() with Bicubic
sigma = 30; % noise level
for IdxIm = 1:nb_im
    fprintf('IdxIm=%d\n', IdxIm);
    ImHR = DIV2K_HR{IdxIm};
    ImLRx3 = imresize_DN(ImHR, 3, sigma);
    % name image
    digit = IdxIm;
    fileName = num2str(IdxIm);
    while digit < 1000
        fileName = ['0', fileName];
        digit = digit*10;
    end

    FolderLRx3 = fullfile(path_save, 'DIV2K_LR_bicubic', 'X3');
    
    if ~exist(FolderLRx3)
        mkdir(FolderLRx3)
    end

    NameLRx3 = fullfile(FolderLRx3, [fileName, 'x3DN.png']);
    % save image
    imwrite(ImLRx3, NameLRx3, 'png');
end


end

function ImLR = imresize_DN(ImHR, scale, sigma)
% ImLR and ImHR are uint8 data
% downsample by Bicubic
ImDown = imresize(ImHR, 1/scale, 'bicubic'); % 0-255
ImDown = single(ImDown); % 0-255
ImDownNoise = ImDown + single(sigma*randn(size(ImDown))); % 0-255
ImLR = uint8(ImDownNoise); % 0-255
end

DN的两三四倍

function Prepare_TrainData_HR_LR_DN()
%% settings
path_save = './DIV2K';
path_src = './DIV2K/DIV2K_HR';
ext               =  {'*.jpg','*.png','*.bmp'};
filepaths           =  [];
for i = 1 : length(ext)
    filepaths = cat(1,filepaths, dir(fullfile(path_src, ext{i})));
end
nb_im = length(filepaths);
DIV2K_HR = [];

for idx_im = 1:nb_im
    fprintf('Read HR :%d\n', idx_im);
    ImHR = imread(fullfile(path_src, filepaths(idx_im).name));
    DIV2K_HR{idx_im} = ImHR;
end
%% generate and save LR via imresize() with Bicubic
sigma = 30; % noise level
for IdxIm = 1:nb_im
    fprintf('IdxIm=%d\n', IdxIm);
    ImHR = DIV2K_HR{IdxIm};
	ImLRx2 = imresize_DN(ImHR, 2, sigma);
    ImLRx3 = imresize_DN(ImHR, 3, sigma);
	ImLRx4 = imresize_DN(ImHR, 4, sigma);
    % name image
    digit = IdxIm;
    fileName = num2str(IdxIm);
    while digit < 1000
        fileName = ['0', fileName];
        digit = digit*10;
    end
	FolderLRx2 = fullfile(path_save, 'DIV2K_LR_bicubic', 'X2');
    FolderLRx3 = fullfile(path_save, 'DIV2K_LR_bicubic', 'X3');
	FolderLRx4 = fullfile(path_save, 'DIV2K_LR_bicubic', 'X4');
    
    if ~exist(FolderLRx3)
        mkdir(FolderLRx3)
    end
	if ~exist(FolderLRx2)
        mkdir(FolderLRx2)
    end
	if ~exist(FolderLRx4)
        mkdir(FolderLRx4)
    end
    NameLRx3 = fullfile(FolderLRx3, [fileName, 'x3DN.png']);
	NameLRx4 = fullfile(FolderLRx4, [fileName, 'x4DN.png']);
	NameLRx2 = fullfile(FolderLRx2, [fileName, 'x2DN.png']);
    % save image
    imwrite(ImLRx3, NameLRx3, 'png');
	imwrite(ImLRx4, NameLRx4, 'png');
	imwrite(ImLRx2, NameLRx2, 'png');
end


end

function ImLR = imresize_DN(ImHR, scale, sigma)
% ImLR and ImHR are uint8 data
% downsample by Bicubic
ImDown = imresize(ImHR, 1/scale, 'bicubic'); % 0-255
ImDown = single(ImDown); % 0-255
ImDownNoise = ImDown + single(sigma*randn(size(ImDown))); % 0-255
ImLR = uint8(ImDownNoise); % 0-255
end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值