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

코드가 정상적으로 보입니다. 난 당신이 게리에 RGB 변환, 게리에 GRB하지 할 필요가 희망
...

  1. 수정 directory = dir('AM01AFS.jpg');
  2. 기존 이미지를 대체 못해하지 않는 경우, 새로운 출력 디렉토리를 생성 directory = dir('*.jpg');합니다.

    %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

고마워요 @ 로템, 이것은 정확히 내가 필요한 것입니다. – Qussai