clear all;close all;
%{
    2018/02/13 福田一輝
    このスクリプトはCIFAR10のピクセルデータを各データバッチごとに0~10のフォルダにJPGデータで分類・保存
    するものです。
    使い方は、data_batch_1~5のmatデータと同じフォルダにこのスクリプトをおいて、実行するだけです。
    フォルダが生成されて、分類されていきます。
%}

for setnum=1:5
    %フォルダの用意と読み込み準備
    disp('*****************************')
    name=['data_batch_',num2str(setnum)]
    mkdir(name)
    load([name,'.mat'])
    %matファイルには10000行のデータが3072列あります。
    %CIFAR10の画像データは32*32pixelなので、一列にすると1024列になります。
    %これがRGBで並んでるので1024*3=3072列あります。
    
    
    %フォルダの作成
    for i=0:9
        if ~isdir(num2str(i))
            mkdir([name,'\',num2str(i)])
        end
    end
    
    
    for row=1:10000
        %画像抜き出し
        img=zeros(32,32,3);
        Rstart=0;
        Gstart=1024;
        Bstart=2048;
        
        dataInd=1;
        for i=1:32
            for j=1:32
                img(i,j,1)=data(row,dataInd+Rstart);%ここの処理はreshape関数でやってもいいです。
                img(i,j,2)=data(row,dataInd+Gstart);
                img(i,j,3)=data(row,dataInd+Bstart);
                dataInd=dataInd+1;
            end
        end
        
        img=uint8(img);
        imshow(img);
        
        %画像をフォルダに分類
        imwrite(img,[name,'\',num2str(labels(row)),'\',num2str(row),'.jpg'])
        
        fprintf('Number is %d',row);
        fprintf('. Go to No.%d',labels(row));fprintf(' folder.\n');
        
    end 
end