実験目的
X線CT装置では高精度な撮影を行うために積算回数や投影方向数を増やすことで、長時間のCT撮影を行うことがあります。長時間のX線CT撮影による機器内の温度上昇などから、X線発生装置の点光源にぶれが生じ、画質の精度低下が起きているのかを確かめるために、CTの撮影実験を行いました。今回は通常の撮影方法で撮影した画像と長時間かけて撮影した画像でどのような違いが生じるのかを調べています。
実験手順
- 被写体として直径0.4mmのドリルの刃を使います。被写体のドリルの刃を台座に固定し、拡大率を25倍程度になるように台座を移動させて拡大率を調整します。
- 今回は以下の3つの撮影条件で撮影を行いました。
①積算回数16回、撮影時間10分
②積算回数128回、撮影時間70分
③積算回数16回、撮影時間70分 - それぞれの条件で撮影した透視画像のデータをConeCtExpressという画像再構成ソフトを使って被写体の断層画像を作成します。
- Molcer Plusというソフトを使って3次元モデルを作成します。
実験結果
3つの条件で撮影を行った結果、上図のような結果を得ました。どれもドリルの先端部分を撮影した結果ですが、通常の撮影方法では画像にボケが生じていなかったのに対して、長時間撮影を行った右の二つはボケが生じていたことを確認できました。特に積算回数を増やさずにただ単に長時間撮影を行った真ん中の画像では、大きなボケが生じていることを確認できました。3次元的にモデリングを行った結果を以下に示します。
3次元モデルを見ると、ボケが生じていたのにも関わらず積算回数を128回に増やして撮影したモデルが一番きれいなモデルになっていることがわかりました。
画像の定量的評価
3つの再構成画像の定量的な評価を行いました。ドリルの複雑な形を評価するのは困難であるので、ひとまず、円形のドリルの柄を使って定量的な評価を試みました。具体的には拡大率のわかっている画像に対して、ドリルの領域を2値化し理想的な再構成画像との差分をとっています。
public void evaImage(){ int cnt=0, centerX=0, centerY=0; int width = 640; //被写体の重心を求める for(int i = 0; i < width; i++){ for(int j = 0; j < width; j++){ //既に2値化した再構成画像に対して、被写体の座標の合計値を求める if(image[i*width+j]!=0){ centerX+=i; centerY+=j; cnt++; } } } //重心の座標を求める centerX/=cnt; crntery/=cnt; //理想的な再構成画像を作成する for(int i = 0; i < width; i++){ for(int j = 0; j < width; j++){ if((i-centerX)*(i-centerX)+(j-centerY)*(j-centerY) < 16*16){ //半径が16pixel未満だったら黒 difImage[i*width+j] = 255; }else{ //それ以外の場合は白 difImage[i*width+j] = 0; } } } //画像の差分を求める for(int i = 0; i < width; i++){ for(int j = 0; j < width; j++){ //再構成画像と数値ファントムの差分が0でない場合 if(difImage[i*640+j]-PanelDraw.image2[i*640+j]!=0){ checkDiff[i * width + j] = 255; cnt2++; } } } //画像評価 num = cnt2 / (width*height) * 100; System.out.println(num);
画像の評価を数値化すると、以下のような結果となりました。定性的な評価を行ったときと同様に積算回数を増やさずに長時間撮影を行った場合が一番低く(ボケが多い)、積算回数を増やして長時間撮影を行ったとき一番高い(理想的な形に近い)結果になりました。
以上の結果から、定性的にも定量的にも長時間撮影を行うことによって画像にボケが生じることを確認することができました。しかしこの手法では評価できる形状が限定されるため、ほかの汎用性の高い方法を考える必要があります。本研究ではこのボケを画像データ上で補正することで画質の向上を行おうと考えています。