批量裁剪高光谱图片,使其大小可以被32整除,存储裁剪后的图片,图片名与原图片相同。
clear
clc
pathstr1 = fileparts('.\icvl'); %当前路径
dirname1 = fullfile(pathstr1, 'icvl','*.mat');
imglist1 = dir(dirname1);
sf=32; %scale factor
Test_file={'icvl'}; %原图像数据集
Result_dir ='crop'; %裁剪图像存放位置
Out_dir=fullfile(Result_dir);
for i=1:length(imglist1)
im_structure1 =load(fullfile(pathstr1, 'icvl', imglist1(i).name));
S = im_structure1.rad; %rad为图像文件重mat名称
[h0,w0,c0]=size(S); %获取原图像大小
h=h0-rem(h0,sf); %使得裁剪后图像大小可以被scale factor整除
w=w0-rem(w0,sf);
radc=S(1:h,1:w,:); %裁剪后mat名为radc
str=imglist1(i).name;
save( fullfile(Out_dir, str),'radc'); %存储裁剪后图片,文件名与原图像名相同
end