1. 程式人生 > >根據影象名字把一個大資料夾中影象分類(matlab中for迴圈中巢狀if語句)

根據影象名字把一個大資料夾中影象分類(matlab中for迴圈中巢狀if語句)

clear; close all; clc;
inpath = 'G:\code\xianzhu\Z_CODE\SalBenchmark-master\Data\DataSet1\Saliency\*.png'; %%需要分類的資料夾路徑
%%分類後圖像儲存路徑%%
CA_path = 'G:\code\xianzhu\Z_CODE\SalBenchmark-master\Data\DataSet1\Saliency_P\CA\';
DSR_path = 'G:\code\xianzhu\Z_CODE\SalBenchmark-master\Data\DataSet1\Saliency_P\DSR\';
FES_path = 'G:\code\xianzhu\Z_CODE\SalBenchmark-master\Data\DataSet1\Saliency_P\FES\';
GR_path = 'G:\code\xianzhu\Z_CODE\SalBenchmark-master\Data\DataSet1\Saliency_P\GR\';
SR_path = 'G:\code\xianzhu\Z_CODE\SalBenchmark-master\Data\DataSet1\Saliency_P\SR\';

mkdir(CA_path);
mkdir(DSR_path);
mkdir(FES_path);
mkdir(GR_path);
mkdir(SR_path);

dir_im = dir(inpath);
i=0;
n = 0;
m=5; %根據分類的多少對m進行賦值,這裡我分為5類,下邊的if語句的多少也跟分類種類有關
for i = 1:length(dir_im)
    imName = dir_im(i).name;
%     I = imread([inpath(1:end - 5) imName]);
   input_im=im2double(imread([inpath(1:end - 5) imName]));

    n = i;   
%     a = mod(n,m);
    if mod(n,m) == 1 
       imwrite(input_im,[CA_path,imName(1:end-4),'.png'],'png')
      elseif mod(n,m) == 2
         imwrite(input_im,[DSR_path,imName(1:end-4),'.png'],'png')
        elseif mod(n,m) == 3
           imwrite(input_im,[FES_path,imName(1:end-4),'.png'],'png')
          elseif mod(n,m) == 4
            imwrite(input_im,[GR_path,imName(1:end-4),'.png'],'png')
    else
                 imwrite(input_im,[SR_path,imName(1:end-4),'.png'],'png')


    end
end