2016-08-07 5 views
0

で他のフォルダに保存するには:RGB私はグレーに画像を変換し、現在のフォルダに保存します。このコード持って、フォルダ内のすべての画像の変換グレー元の名前

directory = dir('AM01AFS.jpg'); 
for i = 1 : size(directory,1) 
    filename = directory(i).name; 
    img = rgb2gray(imread(filename)); 
    imwrite(img, ['Gr_' filename]); 
end 

を私は変換する必要がありますRGBからグレーまでのフォルダ(画像)を同じ元の名前のOutputフォルダに保存します。

答えて

0

コードは正常です。
私はあなたが既存のイメージを上書きする習慣ない場合は、新しい出力ディレクトリを作成directory = dir('*.jpg');

  • に変更directory = dir('AM01AFS.jpg');

    1. ...あなたはゲイリーにGRBゲイリーにRGBを変換し、そしてないようにする必要があります願っています。

      %Assume jpg images are in the same directory as the m file. 
      indir = cd; %Modify the indir to location of the jpg files. 
      outdir = 'Gray'; %Name or output directory. 
      directory = dir([indir, '\', '*.jpg']); 
      
      if ((~exist(outdir, 'dir') && length(directory) > 0)) 
          %Create new directory named outdir if directory not exist. 
          mkdir(outdir); 
      end 
      
      for i = 1 : length(directory) 
          filename = directory(i).name; 
          rgb_img = imread([indir, '\', filename]);  
          if (ndims(rgb_img) == 3) %Make sure img is RGB (not gray). 
           img = rgb2gray(rgb_img); 
           %Save gray image to outdir (keep original name). 
           imwrite(img, [outdir, '\', filename]); 
          end 
      end 
      

    フォルダ選択ダイアログボックスを開きたい場合は、以下の例で使用することができます。

    %Open folder selection dialog box, for selecting input and output folders. 
    indir = uigetdir(cd, 'Select input folder'); 
    outdir = uigetdir(cd, 'Select output folder'); 
    directory = dir([indir, '\', '*.jpg']); 
    
    for i = 1 : length(directory) 
        filename = directory(i).name; 
        rgb_img = imread([indir, '\', filename]);  
        if (ndims(rgb_img) == 3) %Make sure img is RGB (not gray). 
         img = rgb2gray(rgb_img); 
         %Save gray image to outdir (keep original name). 
         imwrite(img, [outdir, '\', filename]); 
        end 
    end 
    
  • +0

    おかげ@Rotemを、しかし、どこで入力ディレクトリのフォルダを置くことができますか? – Qussai

    +0

    そうです、jpg画像はMatlab mファイルと同じディレクトリにあると仮定しました。 (私は 'indir'をインクルードするようにコードを修正しました)。私も小さなバグを修正しました。 – Rotem

    +0

    ありがとう@Rotem、これは私が本当に必要なものです。 – Qussai

    関連する問題