Radi_tech’s blog

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

【MATLAB】MRIのcontrastを重ねたpseudo-color imageを作成する.

MRIは色々なContrastを撮像できますが,それらをJPEGのRGBのそれぞれのchannelに入れてpseudo-color imageを作成し,深層学習へ適応した報告があります.

参考文献; Hidetoshi Matsuo, et al. Diagnostic accuracy of deep‑learning with anomaly detection for a small amount of imbalanced data: discriminating malignant parotid tumors in MRI

www.nature.com

手順

  • SizeをそろえたJPEG画像を用意する.(DICOMからResizeしたJPEG変換は別記事参照)
  • "imread"が必要な画像を読みこみ. "rgb2gray"で一次元化する.
  • 入れものとなる上記のJPEGと同様のSize × 3の配列を用意する.
  • RGBのそれぞれのchannelに準備した画像データを入れてpseudo-color image
  • 画像を確認
  • RGBの要素に分解して再度確認

radi-tech.hatenablog.com

%SizeをそろえたJPEGを開く
%今回はDWI b1000とADCを融合する

%画像を読みこむ
DWI_img   =imread('b1000_path');
ADC_img   =imread('ADC_path');

%gray scale の一次元へ変更する
DWI_img_gy    = rgb2gray(DWI_img);
ADC_img_gy    = rgb2gray(ADC_img);

%画像サイズを得る
[x,~]=size(DWI_img_gy);

%入れものとなる3次元配列を用意する. ここでは"pRGB"という変数とする
%'uint8'にしておくことが注意点
pRGB= zeros(x,x,3,'uint8');

%上記のGray scale画像を入れ込む
%Blue channelは空にしておく
pRGB(:,:,1)=[DWI_img_gy];        %Red channel
pRGB(:,:,2)=[ADC_img_gy];       %Green channel
pRGB(:,:,3)=[];                              %Blue channel

%画像の確認
figure
imshow(pRGB,[])

%画像を保存
imwrite(pRGB,'pRGB.jpg','jpg');


%色の各要素を確認
[R,G,B] = imsplit(pRGB);

figure
subplot(1,3,1)
imshow(R,[])
title('Red Channel')

subplot(1,3,2)
imshow(G,[])
title('Green Channel')

subplot(1,3,3)
imshow(B,[])
title('Blue Channel')

〜

イメージとしてはこんな感じ(上記論文より引用)

pseudo color image
pseudo color image