数据预处理
function imdb =cnn_plate_setup_data(datadir)
inputSize =[20,20,1];%输入设置
subdir=dir(datadir);%文件夹结构
imdb.images.data=[];%图像数据
imdb.images.labels=[];%图像标签
imdb.images.set = [] ;%图像设置
imdb.meta.sets = {'train', 'val', 'test'} ;
image_counter=0;
trainratio=0.8;
for i=3:length(subdir)%逐一读取文件夹
imgfiles=dir(fullfile(datadir,subdir(i).name));%文件夹结构
imgpercategory_count=length(imgfiles)-2;%文件数
disp([i-2 imgpercategory_count]);
image_counter=image_counter+imgpercategory_count;%计量累加
for j=3:length(imgfiles)%逐一读取图像
img=imread(fullfile(datadir,subdir(i).name,imgfiles(j).name));
img=imresize(img, inputSize(1:2));
img=single(img);%单精度
[~,~,d]=size(img);%灰度化图片
if d==3
img=rgb2gray(img);
continue;
end
imdb.images.data(:,:,:,end+1)=single(img);%载入图片
imdb.images.labels(end+1)= i-2;%载入标签 文件夹序号
%设置为训练图片还是验证图片?
if j-2<imgpercategory_count*trainratio
imdb.images.set(end+1)=1;
else
imdb.images.set(end+1)=3;
end
end
end
dataMean=mean(imdb.images.data,4);%四维均值
%减去均值
imdb.images.data = single(bsxfun(@minus,imdb.images.data, dataMean)) ;
%均值
imdb.images.data_mean = dataMean;
end