2018年6月6日 更新

CTの原理②〜投影切断面定理とCT再構成の実装〜

CT (Computed Tomography)の投影切断面定理に関して説明します. また投影が少なくなったとき,どのような挙動を示すのかを数値実験を交えながら紹介します.

11,898 view お気に入り 0
前回の記事では,CTの投影がRadon変換によって与えられることを示し,
それをmatlab のコードにより実装しました.
具体的には,投影領域に対して,ある角度で投影した際,以下のように与えられることを説明しました.

\begin{align} p(r,\theta) = \int_{D} f(x,y) \delta(r-x\cos\theta - y\sin\theta)dxdy \end{align}

ProjectionとObjectの関係

ProjectionとObjectの関係

Projection とObjectの関係について表した図.

ここで$\delta$はデルタ関数と呼ばれるもので,0になる部分で1,他の部分で0になるようなものです

本記事で考えている題材は,いろいろな角度から投影が得られたとき,Objectを完全に復元できるのか?という問題です.
 (4796)

投影から復元する問題.
結論をいうと,出来ます.これには,投影切断面定理と呼ばれる以下の定理を用います.

投影切断面定理

投影切断面定理とはCTの投影とその領域の2次元フーリエ変換とを結びつける定理です. 具体的には, CTの投影のフーリエ変換が,領域の2次元フーリエ変換の断面に一致するという定理です. 領域の2次元フーリエ変換が分かれば,逆フーリエ変換をすることで元の領域を得ることができますので, 投影から完全に復元できたことになります.

ここでは具体的な式変形は割愛させていただきます.興味のある方は調べてみてください.

Matlabによる実装

以下,Matlabのコードで実装してみました.
なお,Matlab の関数にはFilter Back Projection と呼ばれる処理を行う関数が入っており,上の定理に加え,周波数領域で空間フィルタをたたみ込むことで,高周波成分のノイズの拡大を防いでいます.

https://uk.mathworks.com/help/images/ref/iradon.html

1. まず画像をロードします.

P = phantom(128);
imshow(P)
Matlab コード1
 (4802)

Phantom 画像
27 件

関連する記事 こんな記事も人気です♪

スパースモデリング ~少量データから画像を復元~

スパースモデリング ~少量データから画像を復元~

matlab のコードをもとに,スパースモデリングとは何かについて説明します.今回はスパースモデリングの説明です.
ImageJ Plugin で数値計算をしてみる #5

ImageJ Plugin で数値計算をしてみる #5

非情報科学研究者 (特に生物系研究者) が ImageJ plugin を作るために超えるべき壁やTipsをまとめます。今回は、面積の平均値や中央値、分散を出力するためのコードをご紹介します。
湖城 恵 | 10,124 view
Extracting Straight Lines〜画像から境界線を効率よく求める方法〜

Extracting Straight Lines〜画像から境界線を効率よく求める方法〜

本記事では,IEEE Transactions on Pattern Analysis and Machine Intelligence に投稿された,「Extracting Straight Lines」の論文を説明し,実装を行います.1986年に投稿された少し古めの論文ですが,アイディアは非常に面白いです.
ディジタル画像処理~pythonによる空間フィルタリングpart1~ 

ディジタル画像処理~pythonによる空間フィルタリングpart1~ 

ディジタル画像処理を解説します.今回は,代表的な空間フィルタリングをpythonで実行してみました。
亀谷 桃子 | 13,686 view
量子アニーリングを駆使して数独を解いてみた

量子アニーリングを駆使して数独を解いてみた

先日,量子アニーリングの勉強会に参加して来ました.そのアウトプットとして,今回,数独ソルバーを作ってみます.
井上 大輝 | 4,234 view

この記事のキーワード

この記事のキュレーター

エルピクセル編集部 エルピクセル編集部