根据图像名字把一个大文件夹中图像分类(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

你可能感兴趣的:(图像处理)