CTスキャンの数学(逆投影法の直感)
あらゆる角度から撮った「影」の情報だけから、体内の断面画像を復元する数学
- 1
- CTスキャンは、X線を体の周りの様々な角度から照射し、それぞれの角度で「通過した経路上の濃度の総和(投影)」を測定する装置
- 2
- 1方向からの投影だけでは断面の形は分からないが、複数の角度から集めた投影データを「逆投影(Back-Projection)」として重ね合わせると、元の断面画像が浮かび上がってくる
- 3
- 使用する角度の数が増えるほど、逆投影で復元される画像はぼやけた放射状のノイズが打ち消し合い、より鮮明に元の形へ近づいていく
なぜこれを学ぶのか? — 現実社会とテクノロジーでの価値
なぜ生まれたのか?
CTスキャンは、X線を体の周りの様々な角度から照射し、それぞれの角度で「通過した経路上の濃度の総和(投影)」を測定する装置
身につく武器・思考力
1方向からの投影だけでは断面の形は分からないが、複数の角度から集めた投影データを「逆投影(Back-Projection)」として重ね合わせると、元の断面画像が浮かび上がってくる
実社会・ITでの活躍現場
- •医療用CTスキャンにおける投影データの取得と逆投影による画像再構成
- •ITシステム・アルゴリズム実装における論理設計
- •データ分析やシミュレーションにおける数理モデリング
Layer 1 — 直感・シミュレーター
5×5のグリッドに隠された簡単な図形(高密度セル)がある。「投影を計算」で0°・45°・90°などの角度ごとに、その方向に沿ったセル値の合計(投影)が棒グラフとして表示される。スライダーで使用する角度の数を増やしていくと、それらの投影を単純に「引き伸ばして重ね合わせる」逆投影再構成画像が、隠された元の図形に少しずつ近づいていく様子を確認できる。
各角度の投影値 を、その角度の方向に沿って画像平面へ引き伸ばして重ね合わせています。 角度数を増やすほど、様々な方向からの「ぼやけ」が打ち消し合い、元画像の十字パターンが鮮明に浮かび上がってきます。
↑ 角度スライダーを1(1方向のみ)にすると再構成画像は縦や横に伸びたぼやけた筋になりますが、4方向すべてを使うと元の十字パターンにかなり近づきます。実際のCT装置では数百〜数千の角度からフィルタ補正逆投影法(FBP)で再構成しています。
CT画像の逆投影法において、使用する撮影角度の数を増やすと再構成画像はどうなるか?
Layer 2 — 定義・受験・証明
定義
2次元の密度分布 (CTでいえば体内組織のX線吸収係数の分布)に対して、角度 の方向に垂直な直線群に沿って線積分(=その方向への影)を取ったものを「ラドン変換」と呼び、投影データ を得る。
CT画像再構成の最も素朴な方法である「単純逆投影(Back-Projection)」は、この投影データを元の平面へ「その角度の方向に一様に引き伸ばして」加算し直す操作であり、複数角度 分を足し合わせることで断面画像の近似 を得る。
公式・数理モデル
証明・導出
単純逆投影がなぜ角度数を増やすほど元画像に近づくのか(直感的な導出):
単一の角度 の投影 を逆投影すると、これは「本来1点にあるはずの密度を、その角度の直線全体に均等にばらまいた」ぼやけた画像になる。これを数式で表すと、単純逆投影で得られる画像は、真の画像 と「星形(放射状)のぼやけを持つカーネル」の畳み込みに等しいことが知られている。
ここで は「原点付近で強く、離れるほど で減衰する」ぼやけカーネルである。角度の数 が少ないと、 はまだ数本の放射状の筋(アーチファクト)を強く残した形をしているが、 を増やすほど様々な方向の筋が重なり合って平均化され、 は原点に鋭いピークを持つ滑らかな関数に近づいていく。
これは、多数の角度からの「線状のぼやけ」が、互いに違う方向を向いているために打ち消し合い(建設的に重なるのは真の密度がある場所だけ)、統計的に見ると元の形の輪郭部分だけが強め合って浮かび上がる、という仕組みである。
実際の医療用CTでは、この単純逆投影がもたらす 型のぼやけを補正するために、投影データをフーリエ変換して高周波成分を強調するフィルタ(ランプフィルタ)をかけてから逆投影する「フィルタ補正逆投影法(Filtered Back-Projection, FBP)」が標準的に用いられ、これによりぼやけのない正確な画像再構成が可能になる。
押さえておきたいポイント
- CTは物体の内部を直接見ているのではなく、あらゆる角度からの「影の情報(投影)」だけから断面を数学的に逆算している
- 使用する角度の数が少ないと、放射状の筋(星条旗のようなアーチファクト)が残るが、角度を増やすほどそれらが平均化されて鮮明な形に近づく
- 実際の医療用CTでは、単純逆投影のぼやけを補正する「フィルタ補正逆投影法(FBP)」や、統計的な繰り返し計算による「逐次近似再構成法」が使われている
- ラドン変換とフーリエ変換の間には「投影切断定理(Fourier Slice Theorem)」という深い関係があり、CT画像再構成理論の中心的な定理になっている
本トピックの内容・数理モデルは、文部科学省学習指導要領(算数・数学・情報)および国際標準カリキュラムに準拠し、エンジニアリング現場の実装事例と照らし合わせてMath World Lab編集部により検証・作成されています。
Layer 3 — 工学応用・現場実装
医療用CTスキャンにおける投影データの取得と逆投影による画像再構成
小さなグリッド上のテスト画像に対し、複数角度からの投影(各方向へのセル値の総和)を計算し、それらを単純逆投影で足し合わせて元画像を近似復元する。実際のCT装置ではこれをフィルタ補正逆投影法(FBP)や逐次近似法に置き換え、数百〜数千の角度・高解像度データで人体断面を再構成している。
1import numpy as np23def project(image: np.ndarray, angle_deg: float) -> np.ndarray:4 """指定した角度に画像を回転してから列方向に総和を取り、1次元の投影データを得る"""5 from scipy.ndimage import rotate6 rotated = rotate(image, angle_deg, reshape=False, order=1, mode="constant")7 return rotated.sum(axis=0) # 各列(=その角度に垂直な直線)ごとの合計89def back_project(projection: np.ndarray, angle_deg: float, shape) -> np.ndarray:10 """1次元の投影データを、その角度の方向に一様に引き伸ばして2次元へ戻す"""11 from scipy.ndimage import rotate12 smeared = np.tile(projection, (shape[0], 1)) # 列方向に同じ値を複製(引き伸ばし)13 return rotate(smeared, -angle_deg, reshape=False, order=1, mode="constant")1415# 5x5のテスト画像(中央に高密度の十字型パターン、隠された「図形」に相当)16image = np.zeros((5, 5))17image[2, :] = 5 # 横線18image[:, 2] = 5 # 縦線1920angles = [0, 45, 90, 135] # 使用する撮影角度を増やすほど再構成が鮮明になる21reconstruction = np.zeros_like(image, dtype=float)2223for angle in angles:24 proj = project(image, angle)25 reconstruction += back_project(proj, angle, image.shape)2627reconstruction /= len(angles) # 角度数で正規化28print("逆投影による再構成画像:\n", np.round(reconstruction, 2))
次に学ぶならコレ!おすすめトピック
この単元と深い繋がりを持つ、あわせて学ぶと理解が深まるおすすめ単元