Radi_tech’s blog

Radiological technologist in Japan / MRI / AI / Deep learning / MATLAB / R / Python

【MATLAB】DICOM情報を付加するJPEGをDICOM変換

GANや超解像で作成した画像データ(JPEG, PNG)を元のDICOMデータの情報を付加してDICOM変換する。

% 元のDICOMデータのlist作成
dcm_fd = フォルダ名;
dcm_fls = dir(dcm_fd);
dcm_fls = dcm_fls(3:end);
dcm_fls = {dcm_fls.name};

% JPEGデータのlist作成 (今回は超解像をやったことにてHR (high reso) としている)
HR_fd = フォルダ名;
HR_fls = dir(HR_fd);
HR_fls = HR_fls(3:end);
HR_fls = {HR_fls.name};

%保存用フォルダの指定
sv_fd = "H:/sv_fd"


% UIDの作成 StudyInstanceUIDとSeriesInstanceUIDの変換が必要
uid_1 = dicomuid;
uid_2 = dicomuid;

for x = 1:length(dcm_fls)

    tmp_dcm_path = fullfile(dcm_fd, dcm_fls{x});
    tmp_HR_path  = fullfile(HR_fd, HR_fls{x});

    tmp_info = dicominfo(tmp_dcm_path);



    tmp_info.StudyInstanceUID =uid_1;
    tmp_info.SeriesInstanceUID=uid_2;



    img    = imread(tmp_HR_path);
    img    = rgb2gray(img);
    img    = cast(img, "uint16");
    rs_img = imresize(img, [1024 1024]);

 
    name = fullfile(sv_fd, dcm_fls{x});
    

    dicomwrite(rs_img,name,tmp_info);

end


これでviewerやworkstaionで読めるようになる。
途中のrgb2grayも重要。ここを忘れるとworkstaion (Zio)では読めない。