(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
(X線CT装置1の構成)
以下、各実施態様について、図面を参照して説明する。
図1は、各実施態様に係るX線CT装置1の内部構成を示したブロック図である。
【0014】
制御部100は、CPU(Central Processing Unit)、ROM(Read Only Memory)やRAM(Random Access Memory)から構成される。制御部100は、スキャン制御部102、再構成処理部103、画像処理部104、表示部106、記憶部107、及び入力部108から構成される。制御部100は、各部から供給される信号を処理し、また種々の制御信号を生成して各部に供給することで、X線CT装置1を統括的に制御する。
【0015】
スキャン制御部102は、X線CT装置1がスキャンを行う際に入力部108などから入力されたスキャンパラメータに基づいて、X線をX線管301に照射させるためのX線ビーム照射信号をX線管制御部201へ出力する。また、スキャン制御部102は入力部108などから入力されたスライス厚、回転速度、及びスキャン領域の大きさなどのスキャンパラメータに基づいて、回転体300を回転させると共に、第1コリメータ401及び第2コリメータ430を移動させる架台駆動信号を架台駆動制御部202へ出力する。また、スキャン制御部102は入力部108などから入力されたスキャン位置などのスキャンパラメータや寝台移動指示に基づいて、天板500を移動させる寝台駆動信号を寝台駆動制御部203へ出力する。
【0016】
再構成処理部103は、X線検出器302がX線を検出した際に出力するX線検出信号に逆投影処理を施して、CT像を生成する。再構成処理部103はCT像を生成すると、これを画像処理部104へと出力する。
【0017】
再構成処理部103が生成するCT像は、診断のために用いる医用CT像と、医用CT像生成のため補助的に用いるリファレンス画像との2つに分けられる。以降の実施態様では、CT像である医用CT像とリファレンス画像の2つを区別して説明する。後述する医用CT像の生成処理は、概略的には以下のように行われる。まず再構成処理部103はスキャン時のX線検出器302が検出したX線検出信号に基づいて、まずリファレンス画像810、811を再構成し、このリファレンス画像同士を組み合わせて動きマップ820を生成する。そして、再構成処理部103は動きマップ820に基づいて重み付け関数830を算出し、重み付け関数830に沿って重み付けがなされたX線検出信号を用いて医用CT像を再構成する。これらのリファレンス画像810、811の再構成処理や、動きマップ820の生成処理、重み付け関数830の設定処理、及び重み付けを用いた医用CT像の再構成処理については詳しく後述する。
【0018】
画像処理部104は、入力部108から入力された指示に基づいて、再構成処理部103から出力された複数の医用CT像から任意断面の医用CT像を抽出する処理や、複数の医用CT像を組み合わせてレンダリング処理の施された3次元画像データなどの画像データに変換する処理を行う。画像処理部104は抽出した医用CT像や変換した3次元画像データを表示部106あるいは記憶部107へと出力する。
【0019】
表示部106は例えば液晶ディスプレイなどによって構成され、画像処理部104から出力された画像データを表示する。また、X線CT装置1を操作するための操作画面や、入力部108によって入力されたスキャンパラメータなどを表示する。
【0020】
記憶部107は、例えばROM、RAMや電気的に書き換えや消去が可能な不揮発性メモリであるフラッシュメモリ、およびHDD(Hard Disc Drive)などの記憶媒体を組み合わせて構成される。記憶部107は画像処理部104から出力された画像データや、再構成処理部103の再構成処理に用いる重み付け関数830を記憶し、また制御部100のCPUにより実行される種々のアプリケーションを記憶する。
【0021】
入力部108は例えばタッチパネルディスプレイや機械的なボタンなどから構成され、X線CT装置1の使用者が入力部108へ行った入力を受け付ける。入力部108は使用者が行ったスキャンパラメータやスキャン開始/停止指示、寝台移動指示などの入力を受け付けると、使用者が行った指示に応じて入力信号を出力する。制御部100は入力部108が出力した入力信号に応じて種々の処理を実行する。
【0022】
X線管制御部201は、スキャン制御部102から出力されたX線ビーム照射信号を受けて、X線管301にX線を照射させるための高電圧を印加する。この高電圧の印加はX線ビーム照射信号が指定するX線パラメータに沿って行われ、X線パラメータは管電圧、管電流、及びX線パルス幅などのパラメータを指定する。
【0023】
X線管301は、X線管制御部201から印加された高電圧を受けて、X線検出器302に向けてX線を照射する。このとき、複数列を持つように構成されたX線検出器302の各列へX線が入射するように、X線管301は列方向に向かって扇状に広がる形状のX線を照射する。
【0024】
X線検出器302は、X線管301から照射されたX線を検出して、これをX線検出信号として再構成処理部103へと出力する。このX線検出器302は、入射したX線を検出し、検出量に応じた電気信号を出力するX線検出素子をチャネル方向(
図2中の矢印方向、あるいは回転体300の回転方向)に沿って複数列並べて構成される。より詳しくは、X線検出器302は被検体Pのチャネル方向に沿って、あるいは体軸方向(
図1中のz方向)に対し垂直な方向(
図2中の矢印方向)に沿ってX線検出素子を並べることでチャネルを構成し、更にこのX線検出素子のチャネルを列方向(
図1中のz方向)に沿って複数列並べることで、X線検出素子を2次元状に並べて構成される。なお、以降
図2中の矢印方向を単にチャネル方向、
図1中のz方向を単に列方向と記載する。
【0025】
架台駆動制御部202は、スキャン制御部102から出力された架台駆動信号を受けて、第1コリメータ401及び第2コリメータ430を移動させ、また回転体300を回転させる。これらの移動及び回転は入力部108が指定する回転速度やスキャン範囲などのスキャンパラメータに基づいて制御される。
【0026】
第1コリメータ401は、鉛やタングステンなどのX線を遮蔽する物質によって構成された板である。第1コリメータ401はX線管301の照射方向を塞ぐ様に複数枚設けられ、X線管301から照射されたX線の一部を遮る。第1コリメータ401の開口部から照射されるX線は、
図1中の点線に示すように、列方向に向かって扇状に広がってX線検出器302へと入射する。第1コリメータ401には図示せぬ駆動モータが取り付けられ、第1コリメータ401は
図1中の±z方向に移動してX線を遮る領域を変化させる。第1コリメータ401と同様に、チャネル方向に対する広がり角度を制御するため、X線管301の照射方向を塞ぐように第2コリメータ430が設けられる。
図2に、回転体300をxy平面から見た断面図を示す。第1コリメータ401によって遮られたX線は、
図2の点線に示すように、チャネル方向に対し扇状に広がってX線検出器302へと入射する。第2コリメータ430には図示せぬ駆動モータが取り付けられ、第2コリメータ430は
図2中の±y方向へ移動してX線を遮る領域を変化させる。
【0027】
回転体300は、ガントリ3内に内蔵される円筒形の装置である。回転体300はX線管301、第1コリメータ401、第2コリメータ430、及びX線検出器302などの部材が取り付けられる。回転体300には回転モータが取り付けられ、X線CT装置1がスキャンを行う際に回転体300は架台駆動制御部202から出力される架台駆動指示信号を受けてこの回転モータを駆動し、被検体Pの体軸を中心とする回転運動を行う。回転体300が回転することによって、回転体300に取り付けられた各部材も被検体Pの体軸を中心とする回転運動を行う。
【0028】
天板500は、被検体Pを横たえて載置することが可能な板状の部材である。天板500は天板駆動部501に支持されており、後述する天板駆動部501が天板500の長手方向(
図1中のz軸方向)に沿って天板500を移動させる。
【0029】
天板駆動部501は、図示せぬモータなどによって構成された、天板500を移動させるための装置である。天板駆動部501は、例えばモータと連結したベルトを天板500に取り付けることで構成される。天板駆動部501のモータが回転することによって、連動して天板500の位置が移動することとなる。天板駆動部501は、スキャン制御部102から出力された天板駆動信号を受けて、天板500を天板500の長手方向(
図1中のz軸方向)に沿って移動させる。
【0030】
(スキャン処理の流れ)
X線CT装置1がスキャンを行う際には、まず回転体300が1回転する間にX線管301がX線検出器302へ向けてX線を様々な角度から照射する。X線検出器302は照射角度に合わせてX線検出信号を再構成処理部103へと出力し、再構成処理部103はX線検出器302が出力したX線検出信号に基づいて医用CT像を再構成することができる。
【0031】
ここで、回転体300が1回転する間に収集されたX線検出信号を用いて1枚の医用CT像を生成する場合、データの収集には回転体300が1回転するだけの時間を要することとなる。回転体300が1回転するには例えば0.5秒間といった一定の時間が掛かるため、回転体が1回転を終えるまでの間に被検体Pの組織の一部が動いてしまう事態が考えられる(以下、組織の移動が生じる領域を単に移動領域と記載する)。被検体Pの組織の動きは、例えば内臓の蠕動や、被検体Pの呼吸、あるいは被検体Pの筋肉の動きなどが原因となって引き起こされる。
【0032】
ここで、再構成処理部103が移動領域に対応する画素の画素値を再構成処理によって算出する処理について考える。先述したように、スキャンの際にはX線管301は回転体300の回転によって照射角度を変えながらX線を照射する。そして、再構成処理部103は照射されたX線のうち、移動領域を透過したX線の検出信号を用いて移動領域の再構成を行う。このとき、移動領域におけるX線吸収量は、組織の移動によって時々刻々と変化するため、移動領域を透過したX線の検出信号の値もX線の検出時刻によって変化してしまう。このため、値の変化した検出信号を用いて再構成を行うと、生成された医用CT像の移動領域は移動が無かった場合に比べて画素の値が変化することとなる。画素の値が変化することにより、見かけ上、本来被検体Pに存在しないものが写り込んでいる様に見える。この医用CT像中に写りこんだ、本来被検体Pに存在しないものはアーチファクトと呼ばれ、アーチファクトは医用CT像を用いた診断の妨げとなる。
【0033】
被検体Pの組織の動きにより生じるアーチファクトは、医用CT像生成時の時間分解能を高めることにより抑制することができる。本開示のX線CT装置1においては、医用CT像の再構成に用いるX線検出信号に重み付けを施すことで、医用CT像生成時の時間分解能を変化させる。
【0034】
図3に、X線検出信号への重み付けのプロファイルを表す、重み付け関数830を示す。重み付け関数830の横軸には撮影時刻、及びX線管301の位置に相当するビュー(X線管301の位置)がプロットされ、一方縦軸には重みの値がプロットされている。
図3に示す重み付け関数830は例として、X線管301が被検体Pの周りを1回転する間に900ビュー分のX線検出信号を出力する際に、900ビュー分のX線検出信号それぞれに重み付けを設定するものとして示す。また、
図3(a)には重み付けを施した場合の重み付け関数830の例を示し、
図3(b)には重み付けを施さない場合の重み付け関数830の例を示している。
【0035】
医用CT像は、再構成処理部103が、被検体Pの周りでX線照射位置を回転させながら収集したX線検出信号の集合(以下、単に生データ800と記載する)を用いて、バックプロジェクション法に基づく再構成処理を行うことで得られる。本開示の医用CT装置1においては、再構成処理部103が再構成処理を行う際に、この生データ800に対して重み付け関数830で設定した重み付けを施すことにより時間分解能を変化させる。
【0036】
例えば、医用CT像中のある画素についてのX線投影データ(以下、単にCT値と記載する)は、対応したパスを通る900ビュー分のX線検出信号を線積分した値により得られる。再構成処理部103は、重み付け関数830に基づいて、900ビュー分のX線検出信号に対して重み付けを施す。
図3(a)に示す重み付け関数830を用いる場合には、449ビュー周辺のX線検出信号に対する重みの値が増加される。一方重みの値が増加したビューに対応し、重みの値が増加したビューにおけるX線のパスと同じパスを通るビューである、0ビューあるいは900ビュー周辺のX線検出信号に対する重みは、449ビュー周辺で増加した重みの値を補償するように、重みの値が減少される。
【0037】
従って、CT値を算出するうえで支配的に働くのは、重みの値を増加させた449ビュー周辺におけるX線検出信号となる。一方、0ビューあるいは900ビュー周辺のX線検出信号がCT値に与える影響は相対的に小さなものとなる。回転体300が1回転するには一定の時間を要するため、0ビューにおけるX線検出信号を取得した時刻と900ビューにおけるX線検出信号を取得した時刻とでは、回転体300の回転時間に起因する時間間隔が空いてしまう。そのため、被検体Pに体動を生じる状態で一連のX線検出信号の収集を行うと、時間間隔の開いた0ビュー周辺と900ビュー周辺のX線検出信号とでは、例え同じパスを通過したX線検出信号であってもその値は異なって検出されてしまう。0ビュー及び900ビュー周辺のX線検出信号の重みの値を低下させることで、体動によるX線検出信号の変動がCT値に与える影響を低減することができる。X線検出信号に対して重み付けを行うことにより、短い時間領域に収集されたX線検出信号を主に用いてCT値を算出することができる。つまり、X線検出信号に対する重み付けは、医用CT像の生成時における時間分解能を向上させることと実質的に同じものとみなせる。
【0038】
ところで、先述した
図3(a)に示すような重み付けにより再構成を行った場合と、X線検出信号に対して重み付けを行わない場合、つまり
図3(b)に示すような一様な重み付けにより再構成を行った場合とを比較する。
図3(a)の重み付けを行った場合は、一部のX線検出信号における重みの値が大きいため、該X線検出信号に混入するランダムノイズがCT値に与える影響は大きくなる。その一方で、
図3(b)の重み付けを行った場合は、X線検出信号における重みの値が一様であるため、各X線検出信号に混入するランダムノイズはX線検出信号の足し合わせによって平坦化されるため、ノイズがCT値に与える影響は小さくなる。つまり、重み付けによる時間分解能の向上はノイズによる医用CT像への画質低下の影響が大きくなる。従って、診断上有用な医用CT像を得るためには、移動量の大きな領域に対しては時間分解能を向上させてアーチファクトを低減し、一方移動量の小さな領域に対しては時間分解能を低下させて画質の向上を図ることが必要となる。
【0039】
そこで本実施態様においては、被検体P上の移動領域の分布を検出し、その移動量に応じて領域ごとに時間分解能を変化させて再構成を行う。具体的には、再構成処理部103がスキャンによって収集したX線検出信号の集合、即ち生データ800から撮影時刻の異なるリファレンス画像810、811を再構成し、このリファレンス画像810、811同士の差分を取ることによって、被検体P中のどの領域に移動領域が分布と移動量を示す重みマップ820を生成する。更に重みマップ820から読み取った移動領域中の動き量に応じて重み付け関数830を設定する。重み付け関数830は動き量と時間分解能とを関連付けるための関数であり、動き量の大きな領域に対しては時間分解能を向上させ、動き量の小さな領域に対しては時間分解能を低下させるような重み付け関数830が医用CT像の画素毎に割り当てられる。この重み付け関数の画素毎の割り当ては、重み付け関数を医用CT像の座標情報と関連付ける処理と換言してもよい。重み付け関数830の設定が行われると、再構成処理部103は領域ごとに設定した重み付け関数830に従って医用CT像の再構成を行う。これにより、動き量の大きな領域に対しては時間分解能を高めて再構成を行うことによりアーチファクトを低減することができ、一方動き量が小さくアーチファクトの少ない領域に対しては時間分解能を下げることにより画質を向上させて医用CT像の生成を行うことができる。
【0040】
より詳しくは、本実施態様に述べるX線CT装置1は実質的に下記の順で処理を行うことで、アーチファクトを抑制した医用CT像を生成する。
【0041】
(1)生データ800の収集
(2)リファレンス810、811画像の再構成
(3)重みマップ820の生成
(4)重み付け関数830の設定
(5)医用CT像の再構成
以下、被検体Pの医用CT像を生成する際の、X線CT装置1の処理の流れについて述べる。
【0042】
(1)生データ800の収集
X線CT装置1がスキャンを開始すると、まず回転体300を回転させた状態でX線管301が被検体Pへ向けてX線を照射し、X線検出器302が生データ800を収集する。ここで生データ800とは、照射角度毎にX線検出器302が収集したX線検出信号の集合を指す(以降、X線管301の照射角度を単にビューと記載する。)。X線管301が1回転する間にX線検出素子の1列が収集したX線検出信号の集合に1つの生データ800が対応し、生データ800は後述するチャネルとビューという2つの引数によって定義された2次元配列データとして記憶部107に記憶される。なお、以降の実施態様においては説明の簡単のため、X線検出器302のうちの単一のX線検出素子の列に注目して述べる。
【0043】
図4及び
図5は、回転体300の回転と共にX線検出器302が収集する生データ800を示した図である。
図4及び
図5においては、2次元配列データである生データ800をX線検出信号の強度に応じて明るさの異なる2次元画像として示す。生データ800の画像の横軸はチャネルに対応し、縦軸はビューに対応する。また、本実施態様においては例として、X線検出器302の各列がX線検出素子を512個並べて構成されるものとして述べる(
図4中の0ch−511chの記載に対応する。)(以降、X線検出素子がチャネル方向に並べられた順番を、単にチャネルと記載する。)。また、第1コリメータ401及び第2コリメータ430はX線照射範囲の制御を行わず、X線管301から照射されたX線は全てのX線検出素子へと入射するものとする。各列におけるX線検出素子の数は当然加減されて構わないし、X線の照射範囲は第1コリメータ401及び第2コリメータ430を制御することにより適宣狭められても構わない。
【0044】
以下、X線検出器302による生データ800の収集について述べる。まずX線管301がX線を照射すると、X線は被検体Pを透過してX線検出器302へと入射する。X線検出器302へ入射するときのX線の強度は被検体Pを透過することで変化し、並べられたX線検出素子にはチャネルごとに異なる強度のX線が入射する。X線検出器302を構成するX線検出素子の特定の列に注目すると、この列からは一度の検出毎に512個のX線検出信号が出力されることとなる。X線管301及びX線検出器302は、回転体300の回転によってX線の照射角度を変化させながらX線の照射と検出を続ける。X線検出器302が
図4の状態に至るまでに125ビュー分の検出を行ったとすると、この時点のある列における生データ800は、1ビューあたり512個のX線検出信号を125ビュー分有することとなる。更に回転体300の回転とX線検出器302のX線の検出を続け、
図5に示すように回転体300が1回転したところで、X線CT装置1は1スキャン分の生データ800の収集を終了する。回転体300が1回転するまでにX線検出器302が900ビュー分の検出を行ったとすると、この時点のある列における生データ800は1ビューあたり512個のX線検出信号を900ビュー分有することとなる。以上の動作により収集された生データ800は再構成処理部103へと出力され、再構成処理部103は生データ800を用いて後述するリファレンス画像810、811の生成を行う。
【0045】
(2)リファレンス画像810、811の再構成
再構成処理部103は先述した生データ800を基に、リファレンス画像810、811の再構成を行う。リファレンス画像810、811は、生データ800の一部のデータ領域から再構成されたCT像、あるいは再構成されたデータの集合である。リファレンス画像810、811は、生データ800を逆投影して得られたCT値に基づいて断層像を生成することで得られる。リファレンス画像810、811は、1回のスキャンから得られる生データ800から例えば2枚が生成される。リファレンス画像810の再構成する生データ800のデータ領域とリファレンス画像811を再構成する生データ800のデータ領域とは、X線検出信号の収集時刻が互いに異なるデータ領域を含むように、再構成処理部103は再構成するデータ領域の設定を行う。
【0046】
図6に、リファレンス画像810を再構成する様子を示す。以下、具体的に再構成の処理について述べる。まず再構成処理部103は再構成の前処理として、再構成されたCT像の強調のため生データ800にフィルタ処理を施す。このフィルタ処理は例えば生データ800に含まれる高周波成分を濾過することにより行われる。なお、ここでは簡単のため説明を省略するが、画質向上のために、X線強度補正やビームハードニング補正といった種々の補正処理を生データ800に施しても構わない。再構成処理部103はフィルタ処理の適用を終えると、生データ800のあるデータ領域内に含まれるX線検出信号の集合を抽出する。
図6では例として、生データ800におけるデータ領域の前半部分である、1ビューから573ビューまでのデータ領域に含まれるX線検出信号を抽出した場合を示す。再構成処理部103は抽出したX線検出信号に対してバックプロジェクション法に基づく再構成処理を施し、2次元空間上にCT値をマッピングしたリファレンス画像810を生成する。
【0047】
また
図7に、リファレンス画像811を再構成する様子を示す。リファレンス画像811の再構成処理の内容は、先述したリファレンス画像810の再構成処理と同じである。リファレンス画像811は、例えば生データ800における後半領域である、326ビューから900ビューまでのデータ領域に含まれるX線検出信号を用いて再構成される。
【0048】
ここで、
図6及び
図7に示したようなデータ領域を基にリファレンス画像810、811を再構成すると、各画像の基となったX線検出信号の収集時刻にはずれが生じることとなる。具体的には、例えば回転体300が0.50秒間を掛けて1回転すると考えると、リファレンス画像810を構成する1ビューから573ビューまでのX線検出信号は、スキャンを開始した瞬間から0.32秒が経過するまでの時間領域に収集されたものである。一方、リファレンス画像811を構成する326ビューから900ビューまでのX線検出信号は、スキャンを開始して0.18秒が経過した時点から0.50秒が経過する時点までの時間領域に収集されたものである。
【0049】
先述したように、被検体P内に組織の移動が生じる移動領域が存在する場合には、この移動領域のX線吸収量は組織の移動によって時々刻々と変化する。リファレンス画像810とリファレンス画像811とはX線検出信号の収集時刻が異なるため、移動領域におけるCT値は各リファレンス画像上で異なる値として現れることとなる。従って、各リファレンス画像上でCT値が変化している領域を検出することで、被検体P上の移動領域がどの部分に分布しているかを検出することができる。再構成処理部103は再構成したリファレンス画像810、811を用いて重みマップ820を生成することで、被検体P上の移動領域の検出を行う。
【0050】
なお、本実施態様においては2枚のリファレンス画像を再構成する場合について述べたが、3枚以上のリファレンス画像を生成する処理を行っても構わない。また、2枚のリファレンス画像は生データ800のデータ領域における前半領域と後半領域を用いて再構成されると述べたが、異なるデータ領域を使用して再構成を行っても構わない。例えば、生データ800のデータ領域における100ビューから673ビューまでのデータ領域に基づいてリファレンス画像810を生成し、200ビューから773ビューまでのデータ領域に基づいてリファレンス画像811を生成するなど、データ領域のうち中間領域にある2組のデータを用いて再構成を行っても構わない。また、異なる時間に収集された2つの生データ800から、それぞれ2枚のリファレンス画像を再構成しても構わない。また、時間的に連続して収集された2つの生データ800にまたがるデータ領域からリファレンス画像を生成しても構わない。例えば、ある生データ800の700ビューから900ビューまでのデータと、この生データ800の直後に収集された生データ800の1ビューから473ビューまでのデータとに基づいて1枚のリファレンス画像を生成しても構わない。
【0051】
(3)重みマップ820の生成
再構成処理部103はリファレンス画像810、811の再構成を行うと、2つのリファレンス画像810、811の差異を検出して重みマップ820を生成する。
図8に重みマップ820を生成する様子を示す。差異の検出は具体的には、2つのリファレンス画像810、811の各画素にマッピングされたCT値の差分を絶対値化し、この絶対値を画素値としてリファレンス画像810、811と同様のx軸とy軸の2軸からなる2次元空間にマッピングすることで行われる。
【0052】
先述したように、リファレンス画像810とリファレンス画像811とのCT値の違いは、移動領域内のX線吸収量の変化によって引き起こされる。このCT値の差分量は、移動領域内のX線吸収量の変化が大きいほど、つまり移動領域内における動き量が大きいほど、大きな画素値となって重みマップ820上に現れる。従って実質的には、重みマップ820上には被検体P内の移動領域の分布と動き量がマッピングされることとなる。
【0053】
なお、リファレンス画像810、811にはノイズ成分が混入するため、重みマップ820には移動領域の移動を反映していない画素が含まれてしまう。こうした画素を取り除くため、再構成処理部103は重みマップ820の平滑化処理を行う。平滑化処理は、ある座標の画素にマッピングされた画素値を補正し、周辺画素との画素値の変化を滑らかにするよう変化させる処理である。平滑化処理にはローパスフィルタや移動平均フィルタ、あるいはメディアンフィルタといった種々の画像フィルタを重みマップ820に適用することにより行われる。平滑化処理を行うことにより重みマップ820からノイズを取り除くことができる。
【0054】
また、再構成処理部103は平滑化処理の行われた重みマップ820の各画素に正規化処理を施す。正規化処理は、重みマップ820内の各画素値を後述する重み付け関数830の設定などの演算に適した範囲の値へと変換する処理である。正規化処理は、例えば重みマップ820内で最大値をとる画素値を抽出し、この最大値で各画素の画素値を除算することにより行われる。この計算により、重みマップ820内の各画素値は0から1の範囲の値に正規化されることとなる。
【0055】
再構成処理部103は以上の処理により平滑化処理が行われ、且つ正規化処理が行われた重みマップ820を生成する。再構成処理部103はこの重みマップ820の各画素値に基づいて重み付け関数830を設定する。
【0056】
(4)重み付け関数830の設定
再構成処理部103は重みマップ820の生成を行うと、重みマップ820の各画素にマッピングされた動き量の値に基づいて、画素毎に重み付け関数830を設定する。後述する医用CT像の再構成処理において、再構成処理部103は1ビューから900ビューまでの全てのX線検出信号を用いて再構成処理を行う。この再構成処理は、X線検出信号に対して重み付け関数830に基づく重み付けを加えた上で、バックプロジェクション法によって医用CT像を再構成することにより行われる。ここで重み付け関数830は、生データ800から抽出された900個のX線検出信号に対して重み付けを与えるための関数である。再構成処理部103は、後述する重み付け関数830による重み付け加算によってCT値を算出し、医用CT像の再構成処理を行う。
【0057】
再構成処理部103は、重みマップ820の各画素にマッピングされた動き量の値に基づいて形状の異なる重み付け関数830を画素に対して設定する。重み付け関数830の形状は少なくとも3種類以上が存在し、記憶部107には形状の異なる重み付け関数830がそれぞれ動き量と関連付けられて記憶される。この場合、再構成処理部103は動き量に関連付けられた重み付け関数830を記憶部107から読み出すことで重み付け関数830の設定を行う。重み付け関数830の形状は後述する時間分解能に影響するが、形状の異なる重み付け関数830を複数用意しておくことにより、時間分解能の大きく異なる不自然な画素の発生を抑えることができる。なお、記憶部107に重み付け関数830そのものを記憶する替わりに、重み付け関数830の形状を設定するための係数などを動き量に関連付けて記憶部107に記憶しても構わない。この場合、再構成処理部103は動き量に関連付けられた係数を記憶部107から読み出し、この係数を基に重み付け関数830を算出することで重み付け関数830の設定を行う。
【0058】
図9に、医用CT画像中のある座標[x1,y1]の画素を再構成する際に用いる、重み付け関数830の例を示す。重み付け関数830は、0から2までの範囲の多段階の値を持ち、連続的に重みの値が切り替わるように設定され、0、1、及び2の3段階以上の重みを持つように設定される。また重み付け関数830は、生データ800のデータ領域の中心である449番目のビューに近づくほど重みの値が増加して2に近づき、449番目のビューにおいて最大値となる。一方データ領域の端である1番目や900番目のビューに近づくほど重みの値が減少して0に近づき、1番目及び900番目のビューにおいて最小値をとるように設定される。例えば
図9に示すような重み付け関数830が設定されると、449番目のビューに属するX線検出信号は重み付け加算の際に2倍近い検出量を持つものとして扱われ、一方1番目や900番目のビューに属するX線検出信号は重み付け加算の際に0に近い検出量を持つように重み付けがなされる。即ち、重み付け関数830の形状は、例えばデータ領域中心のビューに対する重みの値を増加させる一方で、この増加を補償するようにデータ領域端のビューに対する重みの値を減少させた形状となる。より具体的には、あるビューの重みの値と、このビューと同じパスを通るビューの重みの値との合計値が1となり、各ビューに対する重みの値が補償しあうように重み付け関数830が設定される。
【0059】
再構成処理部103がこうした重み付けをX線検出信号に施した上で再構成処理を行うことにより、ある座標[x1,y1]の画素のCT値は、生データ800の収集時刻のうち中心時刻(449番目のビューの収集時刻に対応する。)に近いX線検出信号が支配的に決定するようになり、一方中心時刻から離れた時刻(1番目や900番目に近いビューの収集時刻に対応する。)に近いX線検出信号がCT値の算出に寄与する度合いは小さくなる。この重み付け処理は実質的には、時間分解能を向上させる処理と見なすことができる。
【0060】
本実施態様においては重みマップ820から検出された動き量に応じて重み付け関数830の形状を変化させることで、時間分解能の調節を行う。具体的には、重みマップ820上で動き量が大きな画素に対しては、時間分解能を向上させるために中心時刻から離れた時刻の重みの値を大きく減じ、中心時刻周辺の重みの値を大きく増加させた重み付け関数830を設定する。一方、重みマップ820上で動き量が小さな画素に対しては時間分解能を低下させるため、中心時刻から離れた時刻に収集されたX線検出信号の重みの値の減少量を低下させ、中心時刻周辺のX線検出信号の重みの値を減少させた重み付け関数830を設定する。
【0061】
以下に、重みマップ820にマッピングされた動き量に基づいて重み付け関数830を設定する様子を示す。再構成処理部103が行う重み付け関数830の設定は、例えば重みマップ820が検出した動き量(
図9、
図10、及び
図11中の「strength」に対応。)に比例して、重みの値を増加させる領域の幅及び減少させる領域の幅の変化した重み付け関数830を記憶部107から読みだすことにより行われる。
【0062】
図10に、ある座標[x2,y2]の画素を再構成する際の重み付け関数830を示す。座標[x2,y2]の動き量は座標[x1,y1]の動き量よりも大きいために、重み付け関数830は座標[x1,y1]に比べ時間分解能を向上させる形状に設定される。具体的には、中心時刻周辺で重みが1から2へと増加する領域の幅が、座標[x1,y1]の重み付け関数830よりも広くなるように、更に中心時刻から離れた領域で重みの値が1から0へと減少する領域の幅が、座標[x1,y1]の重み付け関数830よりも広くなった重み付け関数830が記憶部107から読み出される。中心時刻から離れた時刻の重みの値を減らすほど、実質的には時間分解能が向上することとなる。
【0063】
図11に、ある座標[x3,y3]の画素を再構成する際の重み付け関数830を示す。座標[x3,y3]の動き量は座標[x1,y1]の動き量よりも小さいために、重み付け関数830は座標[x1,y1]に比べ時間分解能を低下させるような形状のものが記憶部107から読み出され設定される。具体的には、中心時刻周辺で重みの値が1から2へと増加する領域の幅が、座標[x1、y1]の重み付け関数830よりも狭くなるように、更に中心時刻から離れた領域で重みの値が1から0へと減少する領域の幅が、座標[x1、y1]の重み付け関数830よりも狭くなる重み付け関数830が設定される。中心時刻から離れた時刻の重みの値の減少量が減るほど、実質的には時間分解能が低下することとなる。
【0064】
なお、本実施態様では、重み付け関数830は記憶部107に予め記憶され、再構成処理部103がこれを記憶部107から読みだして設定する動作について述べた。しかし、重み付け関数830は予め記憶される代わりに、動き量に合わせて再構成処理部103が算出するものであっても構わない。また、本実施態様では例として、データ領域の中心のビューに対する重みの値が増加し、一方データ領域の端に対する重みの値が減少する重み付け関数830を述べた。しかし、重み付け関数830の重みの値が増加する領域はデータ領域の中心に限らず、例えばデータ領域の端のビューに対する重みの値を増加させ、対応するデータ領域の中心にあるビューに対する重みの値を減少させた重み付け関数830を用いても構わない。また、重みの値を増加させ、あるいは減少させる領域はデータ領域の中心や端に限らず、中心と端との中間領域などの任意の領域を増加あるいは減少させた重み付け関数830を用いても構わない。
【0065】
なお、本実施態様では重み付け関数830の例として、重みの値が0から1へ、また1から2へ遷移する例を述べた。しかし本実施形態の重み付け関数830はこれに限られるものではなく、
図12(a)に示すように重みの値を0.5から1へ、また1から1.5へ遷移させるなど、重みの値が変化する幅を適宣変更しても構わない。またあるいは、重みマップ820から検出された動き量の大きさに応じて重みの値が変化する幅が異なる重み付け関数830を用いても構わない。
図12(a)に示す形状の重み付け関数830において、動き量が大きい場合には重みの値が例えば0から2の範囲で変化する重み付け関数830を用いることで実質的に時間分解能を向上させ、一方動き量が小さい場合には重みの値が例えば0.5から1.5の範囲で変化する重み付け関数830を用いることで時間分解能を低下させることができる。
【0066】
また、
図12(b)に示すように、1回転を超えて収集されたX線検出信号に対して重み付け関数830を設定しても構わない。
図12(b)では、例として1100ビュー分のX線検出信号に対して重み付けを行う例を示す。
図12(b)では0から200ビューにおける重みの値が0から1へなだらかに増加するように設定される。一方、0から200ビューと同じパスを通る900から1100ビューにおける重みの値は、0から200ビューの重みの値を補償し合計値が1となるように、1から0へとなだらかに減少するように設定される。動き量が小さい場合には超過するビュー数が増加した重み付け関数830を用いて、0ビューから1300ビュー分のX線検出信号に対して重み付けを行う。0から400ビューの範囲で重みの値が増加し、一方900から1300ビューの範囲で重みの値が減少する重み付け関数830を用いる。一方動き量が大きい場合には超過するビュー数が減少した重み付け関数830を用いて、0ビューから1000ビュー分のX線検出信号に対して重み付けを行う。0から100ビューの範囲で重みの値が増加し、一方900から1000ビューの範囲で重みの値が減少する重み付け関数830を用いる。このように、動き量の大きさに合わせて超過するビュー数及び値の変化するビューの範囲が異なる重み付け関数830を用いることで、時間分解能を変化させることができる。
【0067】
(5)医用CT像の再構成
再構成処理部103は重み付け関数830を設定すると、設定した重み付け関数830に従って医用CT像の再構成を行う。医用CT像は、生データ800における全てのデータ領域に含まれるX線検出信号を用いて再構成される。
【0068】
以下、より具体的に医用CT像の再構成処理について述べる。再構成処理部103は再構成を開始するに当たって、生データ800に含まれるX線検出信号の集合を抽出する。
【0069】
次に、再構成処理部103は医用CT像上の各画素と披検体P上のX線が透過した断面とを関連付ける。再構成処理部103は、医用CT像上の座標[x,y]を透過したX線のX線検出信号が、生データ800上のどのX線検出信号に対応するかを算出し、対応するX線検出信号を抽出する。医用CT像の再構成においては、生データ800に含まれる900個のX線検出信号が抽出されることとなる。次に、再構成処理部103は重みマップ820からある画素[x,y]に対応する動き量を読み出し、これに対応した重み付け関数830を決定する。再構成処理部103はある画素[x,y]に対応するX線検出信号の集合に対して、重み付け関数830に基づく重み付けを施し、検出量の値を変化させる。再構成処理部103は値の変化した900個のX線検出信号が持つ検出量の値を重み付け加算し、得られた値をCT値として、医用CT像中の画素[x,y]にマッピングする。同様の処理を全ての画素について行い、再構成処理部103は医用CT像の再構成を行う。
【0070】
「(4)重み付け関数830の設定」の項で述べたように、重み付け関数830は被検体P上で動き量が大きな領域において時間分解能が高くなるように設定される。時間分解能を向上させることにより、組織の移動による影響を低減し、医用CT像上に現れるアーチファクトを抑制することができる。一方重み付け関数830は、被検体P上で移動量が小さな領域において時間分解能が低くなるように設定される。時間分解能を低下させることにより、実質的にはより多くのX線検出信号に基づいてCT値を決定するため、ノイズの影響を減じ画質を向上させることができる。
【0071】
このように、本実施態様における医用CT像の再構成は画素毎に組織の移動を検出し、動き量に応じて時間分解能を加減することで行われる。組織の移動が大きくアーチファクトの大きな領域に対してのみ時間分解能を向上させて再構成を行うことで、移動領域に生じるアーチファクトを低減しつつ、移動領域以外の領域の画質を向上させることができる。
【0072】
(医用CT像の再構成処理の流れ)
図13は、本実施態様における医用CT像の再構成処理の流れを示したフローチャートである。以下、
図13に沿って再構成処理の流れについて述べる。なお、
図13の再構成処理を行うにあたって、X線検出器302による生データ800の収集及び重みマップ820の生成は既に行われているものとする。
【0073】
まず再構成処理部103が再構成処理を開始すると(ステップ1000)、再構成処理部103はX線検出器302により収集された生データ800から、医用CT像のある画素[X,Y]を透過したX線のX線検出信号が、生データ800上のどのチャネルに属するかを算出し、該当するビューとチャネルのX線検出信号を抽出する(ステップ1001)。なお
図13中のch=CalcCH(X,Y,VIEW)なる関数は、医用CT像上の画素の座標[X,Y]とビュー番号[VIEW]が与えられたとき、これに対応する生データ800上のチャネル番号[ch]を算出する関数である。
【0074】
次に再構成処理部103は重みマップ820上に基づいて、座標[X,Y]にある画素の動き量(
図13中の「strength」)を読み出す(ステップ1002)。なお
図13中のstrength=StrengthMAP[X,Y]なる関数は、重みマップ820上の座標[X,Y]にマッピングされた値を動き量[strength]として読み出す関数である。
【0075】
次に再構成処理部103は読み出した動き量[strength]の値に基づいて重み付け関数830を設定し、設定した重み付け関数830に基づいて、あるビューにおける重み(
図13中の「weight」)の値を算出する(ステップ1003)。なお
図13中のweight=CalcWeight(strangth,VIEW)なる関数は、ステップ1002で読み出された動き量[strangth]とビュー番号[VIEW]が与えられたとき、重み付け関数830から重みの値[weight]を算出する関数である。
【0076】
次に再構成処理部103は、重み付けられたX線検出信号の値を医用CT画像の座標[X,Y]にある画素のCT値(
図13中のPixel[X,Y])と重み付け加算する(ステップ1004)。なお
図13中のPixel[X,Y]=Ray[ch,VIEW]*weight+Pixel[X,Y]なる関数は、ステップ1001で算出したチャネル番号[ch]と与えられたビュー番号[VIEW]に属するX線検出信号の値(
図13中の「Ray[ch,VIEW]」)を生データ800から読み出し、読み出したX線検出信号の値にステップ1003で算出した重みの値を乗算する。そして乗算によって得られた値を、医用CT像の座標[X,Y]へマッピングされた値Pixel[X,Y]へ加算する関数である。
【0077】
再構成処理部103はCT値の重み付け加算が終了すると、ステップ1001からステップ1004に係る処理が全てのビューについて行われたか否かを判定する(ステップ1005)。なお、
図13中の「Nview」は、一度のスキャンで得られるビュー数を示す。再構成処理部103が、処理の行われていないビューが存在すると判断すると(ステップ1005のYes)、再構成処理部103はビュー番号[VIEW]を更新して(ステップ1006)、再びステップ1001の処理に戻る。
【0078】
再構成処理部103が全てのビューについて処理が行われたと判断すると(ステップ1005のNo)、再構成処理部103はステップ1001からステップ1005に係る処理が全てのx座標について行われたか否かを判定する(ステップ1007)。なお、
図13中の「MatrixX」は、医用CT像中で最大のx座標の値を示す。再構成処理部103が、処理の行われていないx座標が存在すると判断すると(ステップ1007のYes)、再構成処理部103はビュー番号[VIEW]及びx座標の値[X]を更新して(ステップ1008)、再びステップ1001の処理に戻る。
【0079】
再構成処理部103が全てのx座標について処理が行われたと判断すると(ステップ1007のNo)、再構成処理部103はステップ1001からステップ1007に係る処理が全てのy座標について行われたか否かを判定する(ステップ1009)。なお、
図13中の「MatrixY」は、医用CT像中で最大のy座標の値を示す。再構成処理部103が、処理の行われていないy座標が存在すると判断すると(ステップ1009のYes)、再構成処理部103はビュー番号[VIEW]、x座標の値[X]、及びy座標の値[Y]を更新して(ステップ1010)、再びステップ1001の処理に戻る。再構成処理部103が全てのy座標について処理が行われたと判断すると(ステップ1009のNo)、再構成処理部103は医用CT像の再構成を終了する(ステップ1011)。
【0080】
以上の処理により、再構成処理部103は医用CT像の再構成を行う。なお本実施態様に述べる再構成の処理はこれに限られるものではなく、例えばステップ1001からステップ1004に述べた処理の順番を適宣入れ替えても構わないし、ステップ1005、ステップ1007、及びステップ1009に述べた判定の順を適宣入れ替えても構わない。
【0081】
なお、以上の処理はX線検出器302の特定の一列に注目し、一列のX線検出素子から1断面分の医用CT像を生成する場合について述べたが、X線検出器302が複数列並べられたX線検出素子から構成される場合の処理も同様である。各列から出力された生データ800に対して先述した再構成処理を施すことにより、複数断面の医用CT像を生成することができる。
【0082】
(ヘリカルスキャンにおける重みマップ820の生成)
先の実施態様に述べた医用CT像の再構成処理は、天板500を一定の位置に固定した状態でスキャンを行う所謂コンベンショナルスキャンに注目して述べた。しかし、本実施態様に述べる医用CT像の再構成処理はコンベンショナルスキャンに限られるものではなく、ガントリ3に対して天板500を長手方向(
図14中のz軸方向)に沿って移動させながらスキャンを行い、らせん状にデータを収集するヘリカルスキャンに対しても適用することが可能である。
【0083】
図14にヘリカルスキャンにおけるスキャンの様子を示す。実際のヘリカルスキャンにおいては天板500がガントリ3に対して移動するが、
図14では説明の簡単のため、図中でガントリ3を相対的に移動させたものを示す。
【0084】
X線CT装置1がヘリカルスキャンを開始すると、回転体300が回転した状態でX線管301はX線検出器302の各列へX線が入射するようにX線を照射し、X線検出器302は様々な角度から照射されたX線を検出する。このヘリカルスキャンの最中に天板500は長手方向に対して一定速度で移動するため、X線検出信号を収集するX線検出素子のz座標は撮影時刻と共に変化することとなる。X線検出器302は天板500を所定の距離だけ移動させてヘリカルスキャンを終えると、各列から収集された生データ800を再構成処理部103へと出力する。
【0085】
再構成処理部103がある断面の医用CT像の再構成を行う際には、再構成処理部103は、医用CT像の座標[x,y]に対応する領域を透過したX線検出信号を各生データ800から抽出する。そして、抽出されたX線検出信号を重み付け加算することでCT値を算出し、このCT値を医用CT像上の座標[x,y]へとマッピングする。このマッピングを医用CT像上の各座標について行うことで、再構成処理部103は再構成を行う。
【0086】
ここで
図14の例において、医用CT像の座標[x,y]に対応する領域に注目すると、座標[x,y]に対応する領域を透過したX線検出信号は、X線910が透過してからX線911が透過するまでの間で1回転分存在することとなる。医用CT像についても同じことが言え、ある断面の医用CT像を再構成するためのX線検出信号は1回転分存在することとなる。この1回転分のX線検出信号は、ヘリカル補間により補間されたX線検出信号を含むものであっても構わない。例えば、2つの隣り合う位置のX線検出信号を補間して求められた、2つの位置の中間位置におけるX線検出信号などが含まれるものであっても構わない。
【0087】
従って、
図6などに示したリファレンス画像810、811及び重みマップ820の生成によって、ヘリカルスキャンにおいても移動領域を考慮した再構成処理を行うことが可能となる。具体的には、再構成処理部103はある断面の医用CT像を再構成する際に、再構成する断面に対応するX線検出信号を各生データ800から抽出する。更に、抽出された生データ800を撮影時刻の順に並べ、撮影時刻の前半領域に属するX線検出信号と、後半領域に属するX線検出信号とに分類する。なおこの分類は、
図6及び
図7を用いて示したように一部のX線検出信号が重複するように分類されても構わない。
【0088】
再構成処理部103は前半領域に属するX線検出信号と後半領域に属するX線検出信号からリファレンス画像810、811を再構成し、各リファレンス画像のCT値の差分の絶対値を取ることによって重みマップ820を生成する。再構成処理部103は重みマップ820を生成すると、
図13を用いて先述した処理に基づいて医用CT像を再構成する。以上の処理によって、天板500を移動させながらスキャンを行うヘリカルスキャンにおいても移動領域を考慮した再構成を行うことが可能となる。
【0089】
(対向するX線検出信号を用いた重みマップ820の生成)
先述した実施態様においては、
図6、
図7、及び
図8を用いて述べたように、生データ800のあるデータ領域に属するX線検出信号を用いて一旦リファレンス画像810、811を再構成し、再構成されたリファレンス画像810、811の差分を取ることにより重みマップ820を生成していた。しかし、重みマップ820の生成はこの方法に限られない。
【0090】
図14に重みマップ820を生成する別の例を示す。X線管301とX線検出器302は回転しながらX線の照射及びX線検出信号の収集を行い、2回転したところでスキャンを終了する。このため、各X線検出信号について、被検体Pを透過した軌跡と逆の軌跡を辿ってX線検出器へと入射する、対となるX線検出信号(以下、単に対向データと記載する。)が存在することとなる。
図14に対となるX線検出信号の例を示す。例えば573番目のビューにおいてX線検出器の中央へと入射したX線900は、X線管301が対向する位置にある123番目のビューにおいてX線検出器の中央へと入射するX線901と、逆の軌跡を辿ることとなる(
図14については作図の都合のため、X線900とX線901とは位置をずらして示す。)。即ち、X線900とX線901とは、照射時刻が異なるものの被検体P上の同じ領域を透過することとなる。
【0091】
ところで、X線900及びX線901が透過した軌跡上に移動領域が存在する場合には、X線900とX線901の照射時刻が異なるため、対向データのの値が異なることとなる。また、移動領域における動き量が大きい場合には透過量の変化が大きいため、対向データの値の差も大きくなる。再構成処理部103は重みマップ820を生成するため、対向データの差分の絶対値を算出する。2回転分のスキャンを行った場合、1800ビュー分のX線検出信号に対して、対向データの差分の絶対値は、900個が得られることとなる。再構成処理部103は算出された900個の絶対値を基に再構成を行う。この再構成は、投影される値がX線透過量ではなく対向するX線検出信号の差分の絶対値であることを除けば、リファレンス画像810、811の再構成を行う処理と同様である。差分の絶対値は移動領域の動き量を反映する値であるため、再構成処理部位103が再構成を行って差分の絶対値を重みマップ820の各座標へとマッピングすることで、移動領域の分布を重みマップ820上に反映させることができる。なお、ここでは例として2回転分のスキャンを行う場合について説明を行ったが、例えば1146ビュー分のスキャンを行ない、573個の絶対値を基に再構成を行っても構わないし、2回転以上のスキャンを行うものであっても構わない。
【0092】
以上の処理によれば、リファレンス画像810、811を逐一再構成して重みマップ820を生成する手法に比べ、再構成の処理回数を1回分減じることができる。従って再構成処理部103の処理負荷を軽減し、より高速な処理を行うことが可能となる。
【0093】
なお、各実施態様の構成は、ここに挙げたものに限定されない。例えば各実施形態では、再構成処理部103がリファレンス画像810、811を再構成し、また重みマップ820を生成すると述べた。リファレンス画像810、811や重みマップ820は説明の簡単のため
図6、
図7、及び
図8などで画像として示したが、これらは画像データとして再構成される必要はない。再構成処理部103は例えば数値の並べられたデータとしてリファレンス画像810、811の再構成や重みマップ820を生成するものであっても構わない。
【0094】
また各実施形態ではX線検出器302が複数列のX線検出素子から構成されると述べたが、X線CT装置1の構成はこれに限られない。例えばX線検出器302が単一列のX線検出素子から構成されていたとしても、各実施形態に述べた手法により移動領域を考慮した再構成を行うことができる。
【0095】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。