Radi_tech’s blog

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

【MATLAB】JPEGをDICOM情報を付加して保存する

GANなどで生成した画像(JPEG)をDICOM で保存する方法

生成した画像をwork stationや各種ソフトで使用することを想定しています

手順

ポイントはGray scale or singleへの変換です。JPEGがRGBの3次元に対して,DICOMは色情報を持たない2次元画像です。
RGBのまま取り込むと、work stationでは取り扱うことができない画像(キャプチャ画像と同様)の扱いになります。

また、DICOMメタデータのコピー元画像と混同しないようにUIDを立てておく方必要があります。

% pathを指定してDICOMメタデータを取得
dcm_info=dicominfo(dcm_path));

%コピーもと画像と混同しないようにUIDを立てておく
%"dicomuid"は新たにUIDを作成する呪文
uid_1 = dicomuid;
uid_2 = dicomuid;

%メタデータを一部書き換え
%studyとseriesを新たにする
dcm_info.StudyInstanceUID =uid_1;
dcm_info.SeriesInstanceUID=uid_2;


%pathを指定してJPEGを取得
jpg_img =imread(jpg_path);

% gray scaleへ変換する
jpg_img =rgb2gray(jpg_img); 

%saveするpathを指定して(今はsave_pathとする)、dicom_infoを保存
dicomwrite(jpg_img,[],save_path,dcm_info);  

for文に組み込むとシリーズ全体の画像を一括処理が可能。
その場合、UIDの生成はfor文の外に出す。そうしないと全部バラバラの検査になってしまうので注意。

途中にimresizeやWindow levelの設定を組み込むと任意に調整したDICOM画像が作成可能。