2015年9月15日火曜日

第16回 投影による画像再構成法の原理についてで学ぶ!

この記事は参考記事を援用して、筆者の考えも交えつつ、記述しています。

今回は、CTの断層像(コンベンショナル)を得るための画像再構成の原理について、初歩的な内容から説明していきます!

ラドン変換


次の図のように、ある対象物(ここでは、CT装置のガントリー中心に置かれている被写体と思ってください)が存在する空間上にx-y座標空間を設定し、その空間上で任意角度θの方向(図中のn軸の方向)からX線が照射されたと仮定すると、その投影面SにX線強度値の分布が投影(projection)されます。


このような任意の方向のprojectionデータを集めると、投影した対象物の内部構造まで可視化できそうな気がしてきます。そんな知的好奇心を持ちながら、実際は、どうなるのかみていきましょう。

実際のラドン変換の数式は、次のようになります。


このラドン変換は、下図左上の関係を数式で表したものです。g(s,θ)は下図右上のサイノグラムの要素になります。

(Excelによる画像再構成入門より引用)

ラドン変換によって変換された座標は、1つの投影方向を表しています。これがすべての投影方向に繰り返されることになります。そしてそれぞれの投影分布を正規化し、回転角度(θ)ごとに順に並べたものが、サイノグラムと呼ばれるものです。

この元画像(本当は、何かの物体)を二次元(x-y平面)の任意の角度から複数投影して、サイノグラムを得る変換を一般的にラドン変換と言ってもいいと思います。

ではこのラドン変換で、変な画像(サイノグラム)を作成しましたが、これが何の役に立つのかをみていきましょう。

バックプロジェクション


ラドン変換を用いれば、元画像に対する投影分布を信号強度として正規化し、回転角度ごとに順に並べ、サイノグラムを作ることができます。

このサイノグラムをx-y平面に戻すと、対象物の内部の情報を含んだ断層面が得られます。このx-y平面に戻す方法を、逆投影と呼びます。
逆投影結果画像b(x,y)は、投影方向ごとにマトリクス上に配置した投影変換結果(サイノグラム)をp(k,m)とすると、回転角度ごとのラドン変換の結果から、次の式で表されます。


この処理をバックプロジェクション(逆投影)といいます。

しかし、このb(x,y)は単にすべて回転角度(投影角度)の投影データを加算して二次元分布に変換したのみで、元の画像f(x,y)とはまだ一致しません。元の画像と比べるとぼけた画像になります。このボケの原因は、投影データ間の重なりです。
単に矩形のビームを重ねていくと、中心周辺が点状になり、ボケが広がっていきます。

(参考記事から引用)

そのため、数式的に表現すると、単にバックプロジェクションした画像はボケを含む次の式で表されます。


このh(x,y)がボケの関数(点広がり関数)です。

では、このボケの影響を抑えて、元画像を作る方法がないか考えるわけですが、その方法が、フィルタ補正逆投影法(フィルタ補正バックプロジェクション)といいます。

フィルタ補正逆投影法


画像の中心領域がボケてしまうということがわかっているので、先にフィルタをかけて、ボケを抑える方法がフィルタ補正逆投影法です。

まず、サイノグラムをなす個々の投影データを1つずつフーリエ変換した後、高い周波数領域になるほど線形に増加するフィルタを乗じて、バックプロジェクションをします。(サイノグラム自体をフーリエ変換してからこの処理をかけてしまうとサンプリング誤差が生じます。)
この線形フィルタをLakフィルタ(またはrampフィルタ)といいます。Lakフィルタは開発者の名前の先頭の文字からこの名前が付けられています。
このフィルタは全く画像ノイズがない理想の状態の画像にかけることを想定されているため、実際には、Shepp-LoganフィルタやHammingフィルタなどがCT画像再構成の標準フィルタとして利用される場合が多いようです。

(Excelによる画像再構成入門より引用)
※こちらの図は逐次近似法の例ですが、フィルタリングをイメージしやすいので載せています。

それでは、既存のCT画像を使って、この操作を辿ってみます。
まず、ImageJのプラグイン「Radon Transform.jar」をダウンロードして、プラグインフォルダに入れて、ImageJを起動します。
(http://rsb.info.nih.gov/ij/plugins/radon-transform.html)

今回はサンプルのCT胸部画像を使っていきます。


Plugins>Radon Transformを起動して、そのままデフォルト設定で、「Calculate」してみます。


すると、投影角度が1度ごとの投影データを行として表したサイノグラムが計算されます。


サイノグラムは先述の投影データを縦軸が角度、横軸をサンプリング位置として上から順に正規化した投影データの濃淡値を並べたデータです。

そして、このサイノグラムを分解して、個々の投影データにフィルタをかけて、元に戻すフィルタ補正逆投影をやってみます。

まずはramp(Lak)フィルタで逆投影で戻してみます。「Use Filtering」のチェックがチェックされていることを確認し、フィルタを選択して、「Reconstruct」を押すだけです。


次は、Shepp-Loganフィルタです。


次はHammingフィルタです。

(それぞれのフィルタ)

最後に、なにもフィルタをかけない、単純なバックプロジェクションの結果です。「Use Filtering」のチェックを外して計算します。


フィルタ補正をして逆投影するおかげで、こんなに画質が改善されているということがわかりますね。

(知っ得)

よく、画像再構成の理論を学ぶ時に目にするデジタルファントムがありますよね。
これです。

Shepp-Loganファントムと呼ばれるものです。
この画像を自分で作りたい方、下記URLが参考になるかもしれません。

http://bigwww.epfl.ch/thevenaz/shepplogan/

次回はCTの再構成法と画質評価法について述べていきます。

Visionary Imaging Services, Inc.は、イメージング技術サポートを通じて、創薬研究や医療機器開発など、臨床研究(臨床試験)サポートサービスを展開しております。
お問い合わせはこちらまでお願いいたします。

参考記事:「山本修司:ImageJで学ぶ実践医用・バイオ画像処理.INNERVISION(21・3) 2006, p118-119

0 件のコメント:

コメントを投稿