僅供參考,主要是為自己學習使用
一、bicubic雙三次插值演算法()
clear all
clc
im = {}; %%創建字典im以保存讀取的圖片
dis = dir('D:\EDSR\dataset\Set14\*.bmp');
b = length(dis)
for i = 1:length(dis)
path = strcat('D:\EDSR\dataset\Set14\',dis(i).name);
im{i} =imread(path); %%將讀取到的影像存盤在字典im中
up_scale = 2; %%將降采樣系數設為2,即影像縮小2倍
%if size(im{i},3)>1 %%如果影像不是單通道,則轉化為灰度圖回傳m第三個維度的長度,并賦值給num如果m的維度小于3則回傳1.
% im{i} = rgb2ycbcr(im{i});
% im{i} = im{i}(:, :, 1);
%end
% im_gnd{i} = modcrop(im{i}, up_scale);%保證影像被scale整除
% im_gnd{i} = single(im_gnd{i})/255;
%% bicubic interpolation
im_l{i} = imresize(im{i}, 1/up_scale, 'bicubic');
%im_b{i} = imresize(im_l{i}, up_scale, 'bicubic');
%figure,imshow(im_l{i}) %%為了同時顯示多幅圖片,不加figure的話只會顯示一副圖片,因為讀入的第i副圖片會被第i+1副圖片覆寫
mkdir set14_new;
%imwrite(picture,'/Set5_new/dis('num2str(i,'%05d')').name.png');
imwrite(im_l{i},['D:\EDSR\dataset\set14_new\' num2str(i,'%05d') '.png'])
end
a='wancheng'
二、單通道變三通道
clear all
clc
im = {}; %%創建字典im以保存讀取的圖片
dis = dir('D:\EDSR\dataset\GTdata\Set14\*.bmp');
b = length(dis)
for i = 1:length(dis)
path = strcat('D:\EDSR\dataset\GTdata\Set14\',dis(i).name);
im{i} =imread(path); %%將讀取到的影像存盤在字典im中
up_scale = 2; %%將降采樣系數設為2,即影像縮小2倍
%if size(im{i},3)>1 %%如果影像不是單通道,則轉化為灰度圖回傳m第三個維度的長度,并賦值給num如果m的維度小于3則回傳1.
% im{i} = rgb2ycbcr(im{i});
% im{i} = im{i}(:, :, 1);
%end
if size(im{i},3)<3
I3(:,:,1)=im{i};
I3(:,:,2)=im{i};
I3(:,:,3)=im{i};
im{i}= I3;
end
imwrite(im{i},['./result/', num2str(i,'%05d') '.png'])
end
a = 'wancheng'
三、裁剪圖片使得GT影像和inference后的影像大小一致
clear all
clc
im_result = {}; %%創建字典im以保存讀取的圖片
im_gt = {};
im_a = {};
dis_result = dir('D:\EDSR\dataset\data_inference\Set14_result\*.png');
dis_gt = dir('D:\EDSR\dataset\GTdata\Set14\*.png');
b = length(dis_result)
for i = 1:length(dis_result)
path_result = strcat('D:\EDSR\dataset\data_inference\Set14_result\',dis_result(i).name);
path_gt = strcat('D:\EDSR\dataset\GTdata\Set14\',dis_gt(i).name);
im_result{i} = imread(path_result); %%將讀取到的影像存盤在字典im中
im_gt{i} = imread(path_gt);
w_result = size(im_result{i},2);
w_gt = size(im_gt{i},2); %獲取影像寬
h_result = size(im_result{i},1);
h_gt = size(im_gt{i},1);%獲取影像高
% if w_result>w_gt && h_result==h_gt
% im_result{i} = imcrop(im_result{i},[0,0,w_result-1,h_result]);
% elseif w_result==w_gt && h_result>h_gt
% im_result{i} = imcrop(im_result{i},[0,0,w_result,h_result-1]);
% elseif w_result>w_gt && h_result>h_gt
% im_result{i} = imcrop(im_result{i},[0,0,w_result-1,h_result-1]);
% end
im_a{i} = imcrop(im_result{i},[0,0,w_gt,h_gt]);
%mkdir inference
imwrite(im_a{i},['inference/', num2str(i,'%05d') '.png'])
end
a = 'finish'
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/323263.html
標籤:其他
