金子邦彦研究室インストールWindows の種々のソフトウェア(インストール)医用画像診断支援共通プラットフォーム(PLUTO)のインストール,データの読み込み,レンダリング(Windows 上)

医用画像診断支援共通プラットフォーム(PLUTO)のインストール,データの読み込み,レンダリング(Windows 上)

PLUTOの使用に伴なう謝辞と表示

優れたソフトウェアであるPLUTOの作者陣に感謝いたします.

PLUTOとは

PLUTOとは、 多臓器・多疾病を対象とした統合型の汎用性の高いコンピュータ支援画像診断システムである。このソフトウェアは文部科学省科学研究費特定領域研究「多次元医用画像の知的診断支援」におけるプロジェクトのひとつとして開発されたものである。 このWebページでは,PLUTOを画像のボリュームレンダリング表示のために用いる.このWebページでは,次の2つについて説明する.

 

このPLUTOはホームページから入手したアーカイブに改変を加えず、利用許諾契約書を添付することで、ソフトウェアを再配布できる(2010/06時点.必ず,各自で確認すること)。本ソフトウェアを利用して得られた成果物を公表する場合、当該成果物がPLUTOを利用して得られたものであることと、PLUTOの著作権は創作者に帰属することを表示するものとする(これも必ず,各自で確認すること)

PLUTOのインストール手順

ここではバージョン0.9.8をダウンロードし、インストールを行う手順を示す。

  1. PLUTO の Web ページを開く

    http://pluto.newves.org (現存しない)

  2. その後,ダウンロードページに進む
  3. ユーザ登録を行う

    メールによりダウンロードページのURLが送られてくる。そのURLよりファイルをダウンロードする。

  4. URLよりダウンロードしたファイルを,分かりやすいディレクトリに展開することでインストールが完了する。

PLUTOの起動方法

  1. デスクトップに展開されたディレクトリ内にあるディレクトリ 「x86」 または「x64」を開く
  2. ファイル「Pluto.exe」を実行する

    次のウインドウが立ち上がればPLUTOが正しく実行されている。

    [image]
    図:PLUTOの実行画面

ここで用いる画像

臓器領域と血管領域は、CT画像とMRA画像の臓器の輪郭を粘性流体位置合わせで補正済みである.

[image]
図:臓器と血管の3次元人体地図を統合した3次元人体地図

画像データファイル形式

画像は,4種類ともRGBカラーのBMP形式の断面画像1687枚である.臓器領域,血管領域を抽出したデータも1687枚の断面画像である.これら,臓器領域,血管領域を抽出したデータを重ねあわせて,3次元表示を行うことをPLUTOを用いて行う.

RGBカラーBMP画像のPLUTO対応形式への変換手順

PLUTO対応形式には,DICOMとRAW形式がある。ここでは,取り扱いが簡便なRAW形式に変換を行うこととする。RAW形式はヘッダが存在せず、配列に固定長のデータを入れていくものである。

  1. 臓器領域を抽出したデータ(RGBカラーBMP画像)の,256色グレイスケールBMP画像への変換

    まず、臓器領域を抽出したデータ(RGBカラーBMP画像)を,256色グレイスケールBMP画像に変換するプログラムを作成し、カラー画像を256色グレイスケール画像に変換する。なぜ専用のプログラムを作成したかというと、臓器のRGB値を足して3で割る通常のグレイスケール値に変換するものを利用すると、複数の臓器が同じ値に変換されてしまうためである。このプログラムは予め臓器の色を取得しており、その数値を元に、256色中の別々の色に割り当てる。臓器の色は18色あり、それぞれ10、20・・・180までの18通りの色に置き換えている。背景色(R,G,B)=(255,255,255)は190に置き換えている。    

    [image]
    [image]
    図:変換前のRGBカラーBMP画像と変換後の256色グレイスケールBMP画像

    clear all;
    cd "C:/ "
    %臓器のRGB値
    col=[0 0 0;0 0 255;0 128 255;0 151 0;17 177 255;74 255 255;128 0 64;128 64 0;128 128 0;128 128 255;157 255 255;204 0 204;242 0 121;255 0 255;255 47 47;255 74 255;255 128 128;255 164 119;255 255 255];
    for i=10:10:1687
    file_name=strcat("segmentation_data/zouki_0",dec2base(i,10,4),".bmp");
    tmp_=imread(file_name);
    if(size(size(tmp_))(2)!=3)
    tmp=zeros(265,490,3);
    tmp=zeros(265,490,3);
    else
    tmp=tmp_;
    endif
    tmp2=zeros(265,490);
    for j=1:490
    for k=1:265
    for l=1:size(col)(1)
    if(reshape(tmp(k,j,:),1,3)==col(l,:))tmp2(k,j)=l*10;
    endif
    end
    end
    end
    imwrite(tmp2/255,strcat("C:/PLUTO/zouki_gray_0",dec2base(i,10,4),".bmp"));
    end
    
    

    カラー画像をグレイスケール画像に変換するプログラム
  2. 臓器領域,血管領域を抽出したデータの統合

    次に、臓器領域,血管領域を抽出したデータを統合するプログラムを使う.これは、血管の数値を臓器の画像に上書きするプログラムである。次に、統合したRBGカラーの490x265の画像1687枚を1つの配列の大きさが8bit Unsigned Integerとなるような490x265x1687のRAW形式のデータに変換する。RBGカラーの臓器と血管を統合した画像を256色の色にマッピングを行うOctaveのプログラムを使う.血管の色は200に置き換えている。    

    この結果,この連番画像は256色グレイスケールBMP画像の連番ファイルであり、臓器の色が10、20、・・・180までと多色で構成されており、血管が200、背景色が190となっている。

    [image]
    [image]
    図:結合前の血管画像と、統合した3次元人体地図の画像

    clear all;
    cd "C:/ "
    
    for i=1:1687
    file_name=strcat("PLUTO/zouki_gray_0",dec2base(i,10,4),".bmp");
    file_name2=strcat("vessel/out",dec2base(i,10,4),".bmp");
    tmp_1=imread(file_name);
    tmp_2=imread(file_name2);
    if(size(size(tmp_1))(2)==3)
    tmp1=tmp_1(:,:,1);
    else
    tmp1=tmp_1;
    endif
    if(size(size(tmp_2))(2)==3)
    tmp2=tmp_2(:,:,1);
    else
    tmp2=tmp_2;
    endif
    tmp2=double(tmp2)*1000+1;
    tmp3=uint8(tmp1./tmp2);
    if(max(max(tmp2))>0)
    tmp1=uint8(tmp2./max(max(tmp2))*200+tmp3;
    endif
    imwrite(tmp1,strcat("統合した人体地図/fluid2_",dec2base(i,10,4),".bmp"));
    end
    
    

    図:臓器と血管のグレイスケール画像を統合するプログラム

    そして、臓器と血管を統合した256色グレイスケールBMPを画像変換ソフトBatch goo!を用いて256色tiff形式に変換する。Batch goo!は下記のURLからダウンロードできる。

    http://www.vector.co.jp/download/file/win95/art/fh512252.html

    [image]
    図:Batch goo!の動作画面

    最後に、MRICROを用いてTIFF画像をアナライズフォーマット(.hdr+.img)形式に変換する。この.imgファイルがPLUTOで読み込むことができるLAW形式のファイルに当たる。MRICROを起動し、Convert Foreign to Analyzeを用いて画像の枚数1687を入力し、下図の手順でTIFFファイルfluid2_0001.tiffを選択し、fluid2_0001.hdrファイルに変換する。

    [image]
    [image]
    [image]
    [image]
    [image]
    [image]
    図:MRICROでTIFFファイルを変換する手順

    [image]
    図:MRICROで変換したアナライズフォーマットの画像を縦断面で表示した画像

3次元人体地図をPLUTOで読み込ませる

PLUTOで「開く→RAWデータを開く」を選択する。ファイルの種類を「全てのファイル(*.*)」を選び、fluid2_0001.imgファイルを選択する。画像サイズをWidthに490、Heightに265、Depthに1687を設定し、ボクセルサイズをResoXに1を,ResoYに1を,ResoZに0.98を設定し、データタイプにuchar、エンディアンにリトルを設定してOKを押す。

[image]
[image]
[image]
図:PLUTOでRAWデータを開く手順

3次元人体地図の表示の調整(透過度の設定について)

読み込ませただけではカメラ位置が近いため何も分からない画像である。

[image]
図:読み込ませた後の画像

マウスの右クリックを押しながら右にドラッグすることでカメラを遠ざけることができ、立方体が表示される。左クリックを押しながらドラッグすることで、立方体を回転させることで調節した画像が下図である。

[image]
図:カメラを遠ざけ、立方体を回転させ立方体の位置を調節

次に、この画像の描画方法を変更する。CT用カラーテーブルからマーク用カラーテーブルを使用するように設定する。右下の画像データの真ん中のボタンを押し、一番右にある丸いアイコンをクリック.

[image]
図:マーク用カラーテーブルを使用するように設定を変更

次に、透過度を設定する。マーク用カラーテーブルをクリック.

[image]
図:マーク用カラーテーブルをクリック

そしてマーク用カラーテーブル下のバーを右に伸ばし、0から255まで表示するようにする。

[image]
図:255色全てを表示するよう下のバーを右まで伸ばした画像

その後、0にカーソルを合わせて左クリックし、255までドラッグすると、不透明度を変更できるウインドウが表示されるので、不透明度のバーを3%に設定する。

[image]
[image]
図:全ての色について透明度を設定

そして、背景の値190を無効にする。190の透明度を0にしても同じ画像が得られるため、どちらを行っても良い。

[image]
図:背景色を描画しないよう無効にする
レンダリング解像度を1024にすることで、下図のような高解像度の画像が得られる。ただし、1024だと角度を変えるたびに再計算して描画するため表示までの時間がかかる。そのため、カメラの角度や位置を調整する場合にはレンダリング解像度は256のままで行う方が効率良く作業を行うことができる。ただし、このマーク用カラーテーブルは一度ランダムに色を再設定した後で撮影を行っているため、同じ色で表示されることは保障しない。同じような色合いの画像にしたい場合は、各臓器の色を左クリックで再設定することでこれと近い画像にすることは可能である。

[image]
図:3次元人体地図をPLUTOで表示した結果