60 lines
1.9 KiB
Matlab
Executable File
60 lines
1.9 KiB
Matlab
Executable File
function generate_LR_Vimeo90K()
|
|
%% matlab code to genetate blur-downsampled (BD) for Vimeo90K dataset
|
|
% Euler module load matlab/R2020a; cd scripts/matlab_scripts; matlab -nodisplay -nojvm -singleCompThread -r generate_LR_Vimeo90K_BD
|
|
|
|
up_scale = 4;
|
|
mod_scale = 4;
|
|
sigma = 1.6;
|
|
idx = 0;
|
|
filepaths = dir('/scratch/190250671.tmpdir/vimeo90k/vimeo_septuplet/sequences/*/*/*.png');
|
|
for i = 1 : length(filepaths)
|
|
[~,imname,ext] = fileparts(filepaths(i).name);
|
|
folder_path = filepaths(i).folder;
|
|
save_LR_folder = strrep(folder_path,'vimeo_septuplet','vimeo_septuplet_BDLRx4');
|
|
if ~exist(save_LR_folder, 'dir')
|
|
mkdir(save_LR_folder);
|
|
end
|
|
if isempty(imname)
|
|
disp('Ignore . folder.');
|
|
elseif strcmp(imname, '.')
|
|
disp('Ignore .. folder.');
|
|
else
|
|
idx = idx + 1;
|
|
str_result = sprintf('%d\t%s.\n', idx, imname);
|
|
fprintf(str_result);
|
|
% read image
|
|
img = imread(fullfile(folder_path, [imname, ext]));
|
|
img = im2double(img);
|
|
% modcrop
|
|
img = modcrop(img, mod_scale);
|
|
% LR
|
|
im_LR = BD_degradation(img, up_scale, sigma);
|
|
if exist('save_LR_folder', 'var')
|
|
fprintf('\n %d, %s', idx, imname)
|
|
imwrite(im_LR, fullfile(save_LR_folder, [imname, '.png']));
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
%% modcrop
|
|
function img = modcrop(img, modulo)
|
|
if size(img,3) == 1
|
|
sz = size(img);
|
|
sz = sz - mod(sz, modulo);
|
|
img = img(1:sz(1), 1:sz(2));
|
|
else
|
|
tmpsz = size(img);
|
|
sz = tmpsz(1:2);
|
|
sz = sz - mod(sz, modulo);
|
|
img = img(1:sz(1), 1:sz(2),:);
|
|
end
|
|
end
|
|
|
|
%% blur-downsampling degradation
|
|
function img = BD_degradation(img, up_scale, sigma)
|
|
kernelsize = ceil(sigma * 3) * 2 + 2;
|
|
kernel = fspecial('gaussian', kernelsize, sigma);
|
|
img = imfilter(img, kernel, 'replicate');
|
|
img = img(up_scale/2:up_scale:end-up_scale/2, up_scale/2:up_scale:end-up_scale/2, :);
|
|
end |