2017-03-20 7 views
0

Dicom 형식 파일을 읽고 imshow()을 사용하여 표시 할 수 있습니다. 그런 다음 수동으로 파일을 saveas 옵션을 사용하여 jpeg 또는 png로 저장할 수 있습니다. 이것은 한 번에 하나의 파일에 대해 작동합니다. 그러나, 나는 약 1000 dicom 파일이 있습니다. 여러 dicom 데이터 파일을 jpeg 형식으로 다른 폴더에 저장할 수 있습니까?Matlab : jiceg 또는 png 형식으로 여러 Dicom 파일 저장

X = dicomread('C:\Users\skm\Desktop\DicomRaw\578A0BF9'); 
imshow(X); 
%Then from the figure I go to saveas option to save the file as jpeg. 

이 내가 여러 파일

%read multiple images 

FileList = dir('C:\Users\skm\Desktop\DicomRaw\*.*'); 
Converted_jpeg = dir('C:\Users\skm\Desktop\Jpeg_file\*.*'); 

N = size(FileList,1); 

for k = 1:N 

    % get the file name: 
    filename = FileList(k).name 
    disp(filename); 

end 

pic

답변

1

다음과 같은 코드 샘플을 사용할 수 있습니다위한 시도 것입니다 :

내가 한 번에 하나 개의 파일을 읽는 방법입니다 :

indir = 'C:\Users\skm\Desktop\DicomRaw\'; %Input folder name with DICOM files. 
outdir = 'C:\Users\skm\Desktop\Jpeg_file\'; %Output folder name for storing jpg files. 
FileList = dir([indir, '*.*']); %Get list of all files in input folder. 

for k = 1:N 
    % get the file name: 
    filename = FileList(k).name; 

    %Verify there is no dot in file name (in case folder contains other files). 
    if (~any(filename == '.')) 
     X = dicomread([indir, filename]); 

     %Add .jpg extension to file name 
     out_filename = [filename, '.', 'jpg']; 

     %Use imwrite for saving (better than using imshow and saveas). 
     imwrite(X, [outdir, out_filename]); 
    end 
end 
+0

코드가 실행되지만 출력이 없습니다. 나는'disp (filename); '을 사용하여 디버깅을 시도했지만이 명령문에 대해서도 출력이 없다. 이 문제는'FileList = dir ('C : \ Users \ skm \ Desktop \ DicomRaq \ *. dicom'); '줄로 인한 문제 일 수 있지만 원본 파일에는 확장명이 없습니다. dicom 형식의 파일이 들어있는 폴더의 스크린 샷을 첨부했습니다. ' – SKM

+0

귀하의 게시물에 다음과 같이 썼습니다 :'FileList = dir ('C : \ Users \ skm \ Desktop \ DicomRaw \ *. *');'. 왜 그것을 dir ('C : \ Users \ skm \ Desktop \ DicomRaq \ *. dicom')으로 변경 했습니까? 내 게시물을 편집하고 입력 파일 이름에'. '이 없다는 확인을 추가했습니다. – Rotem

+0

감사합니다. 솔루션이 작동합니다. – SKM