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