%CAVE数据集形成.mat格式
clc;
clear all;
% %%针对图片名为连续标号的Matlab程序
file_root = './CAVE/';%原始文件夹,存放多个文件夹
save_root = './save_cave/';
% fld = dir(strcat(folderName,'*'));
all_file=dir(strcat(file_root,'*'));%获取所有文件夹名称
for i = 3:length(all_file)
i
if all_file(i).isdir %如果是文件夹
fname=all_file(i).name;%获取文件名
file_path = [file_root fname '/' fname]; %存放图片的名称
all_img = dir(fullfile(file_path,'*.png'));
length(all_img);
for j = 1 : length(all_img)
if j<10
img_path = [file_path '/' fname '_0' num2str(j),'.png'];
else
img_path = [file_path '/' fname '_' num2str(j),'.png'];
end
img = imread(img_path); %获得文件夹中的每一幅图
if ndims(img)==3
img=rgb2gray(img);
end
x(:,:,j) = img;
imagD = double(x(:,:,j));
m = max(imagD(:)) ;
n = min(imagD(:)) ;
K = uint8((imagD-n)*255/(m-n));
orig(:,:,j) = double(K)/255;
end
save_path = [save_root fname '.mat'];
save(save_path,'orig'); %保存到指定路径
fprintf(['文件名:',save_path,'\n']);
end
end
直接获取生成好的CAVEmat文件:文件太大,没法上传