PLUTOの使用に伴なう謝辞と表示
優れたソフトウェアであるPLUTOの作者陣に感謝いたします.
PLUTOとは
PLUTOとは、 多臓器・多疾病を対象とした統合型の汎用性の高いコンピュータ支援画像診断システムである。このソフトウェアは文部科学省科学研究費特定領域研究「多次元医用画像の知的診断支援」におけるプロジェクトのひとつとして開発されたものである。 このWebページでは,PLUTOを画像のボリュームレンダリング表示のために用いる.このWebページでは,次の2つについて説明する.
このPLUTOはホームページから入手したアーカイブに改変を加えず、利用許諾契約書を添付することで、ソフトウェアを再配布できる(2010/06時点.必ず,各自で確認すること)。本ソフトウェアを利用して得られた成果物を公表する場合、当該成果物がPLUTOを利用して得られたものであることと、PLUTOの著作権は創作者に帰属することを表示するものとする(これも必ず,各自で確認すること)
PLUTO利用許諾書URL:http://pluto.newves.org/registration/EULA.html
ここではバージョン0.9.8をダウンロードし、インストールを行う手順を示す。
http://pluto.newves.org (現存しない)
メールによりダウンロードページのURLが送られてくる。そのURLよりファイルをダウンロードする。
次のウインドウが立ち上がればPLUTOが正しく実行されている。
臓器領域と血管領域は、CT画像とMRA画像の臓器の輪郭を粘性流体位置合わせで補正済みである.
画像は,4種類ともRGBカラーのBMP形式の断面画像1687枚である.臓器領域,血管領域を抽出したデータも1687枚の断面画像である.これら,臓器領域,血管領域を抽出したデータを重ねあわせて,3次元表示を行うことをPLUTOを用いて行う.
PLUTO対応形式には,DICOMとRAW形式がある。ここでは,取り扱いが簡便なRAW形式に変換を行うこととする。RAW形式はヘッダが存在せず、配列に固定長のデータを入れていくものである。
まず、臓器領域を抽出したデータ(RGBカラーBMP画像)を,256色グレイスケールBMP画像に変換するプログラムを作成し、カラー画像を256色グレイスケール画像に変換する。なぜ専用のプログラムを作成したかというと、臓器のRGB値を足して3で割る通常のグレイスケール値に変換するものを利用すると、複数の臓器が同じ値に変換されてしまうためである。このプログラムは予め臓器の色を取得しており、その数値を元に、256色中の別々の色に割り当てる。臓器の色は18色あり、それぞれ10、20・・・180までの18通りの色に置き換えている。背景色(R,G,B)=(255,255,255)は190に置き換えている。
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
次に、臓器領域,血管領域を抽出したデータを統合するプログラムを使う.これは、血管の数値を臓器の画像に上書きするプログラムである。次に、統合したRBGカラーの490x265の画像1687枚を1つの配列の大きさが8bit Unsigned Integerとなるような490x265x1687のRAW形式のデータに変換する。RBGカラーの臓器と血管を統合した画像を256色の色にマッピングを行うOctaveのプログラムを使う.血管の色は200に置き換えている。
この結果,この連番画像は256色グレイスケールBMP画像の連番ファイルであり、臓器の色が10、20、・・・180までと多色で構成されており、血管が200、背景色が190となっている。
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
最後に、MRICROを用いてTIFF画像をアナライズフォーマット(.hdr+.img)形式に変換する。この.imgファイルがPLUTOで読み込むことができるLAW形式のファイルに当たる。MRICROを起動し、Convert Foreign to Analyzeを用いて画像の枚数1687を入力し、下図の手順でTIFFファイルfluid2_0001.tiffを選択し、fluid2_0001.hdrファイルに変換する。
PLUTOで「開く→RAWデータを開く」を選択する。ファイルの種類を「全てのファイル(*.*)」を選び、fluid2_0001.imgファイルを選択する。画像サイズをWidthに490、Heightに265、Depthに1687を設定し、ボクセルサイズをResoXに1を,ResoYに1を,ResoZに0.98を設定し、データタイプにuchar、エンディアンにリトルを設定してOKを押す。
読み込ませただけではカメラ位置が近いため何も分からない画像である。
マウスの右クリックを押しながら右にドラッグすることでカメラを遠ざけることができ、立方体が表示される。左クリックを押しながらドラッグすることで、立方体を回転させることで調節した画像が下図である。
次に、この画像の描画方法を変更する。CT用カラーテーブルからマーク用カラーテーブルを使用するように設定する。右下の画像データの真ん中のボタンを押し、一番右にある丸いアイコンをクリック.
次に、透過度を設定する。マーク用カラーテーブルをクリック.
そしてマーク用カラーテーブル下のバーを右に伸ばし、0から255まで表示するようにする。
その後、0にカーソルを合わせて左クリックし、255までドラッグすると、不透明度を変更できるウインドウが表示されるので、不透明度のバーを3%に設定する。
そして、背景の値190を無効にする。190の透明度を0にしても同じ画像が得られるため、どちらを行っても良い。