Math World Lab

CTスキャンの数学(逆投影法の直感)

あらゆる角度から撮った「影」の情報だけから、体内の断面画像を復元する数学

この単元の発見をシェア
3行要約(Key Takeaways / AIOサマリー)
1
CTスキャンは、X線を体の周りの様々な角度から照射し、それぞれの角度で「通過した経路上の濃度の総和(投影)」を測定する装置
2
1方向からの投影だけでは断面の形は分からないが、複数の角度から集めた投影データを「逆投影(Back-Projection)」として重ね合わせると、元の断面画像が浮かび上がってくる
3
使用する角度の数が増えるほど、逆投影で復元される画像はぼやけた放射状のノイズが打ち消し合い、より鮮明に元の形へ近づいていく

なぜこれを学ぶのか? — 現実社会とテクノロジーでの価値

Purpose & Motivation

なぜ生まれたのか?

CTスキャンは、X線を体の周りの様々な角度から照射し、それぞれの角度で「通過した経路上の濃度の総和(投影)」を測定する装置

身につく武器・思考力

1方向からの投影だけでは断面の形は分からないが、複数の角度から集めた投影データを「逆投影(Back-Projection)」として重ね合わせると、元の断面画像が浮かび上がってくる

実社会・ITでの活躍現場

  • •医療用CTスキャンにおける投影データの取得と逆投影による画像再構成
  • •ITシステム・アルゴリズム実装における論理設計
  • •データ分析やシミュレーションにおける数理モデリング

Layer 1 — 直感・シミュレーター

5×5のグリッドに隠された簡単な図形(高密度セル)がある。「投影を計算」で0°・45°・90°などの角度ごとに、その方向に沿ったセル値の合計(投影)が棒グラフとして表示される。スライダーで使用する角度の数を増やしていくと、それらの投影を単純に「引き伸ばして重ね合わせる」逆投影再構成画像が、隠された元の図形に少しずつ近づいていく様子を確認できる。

使用する撮影角度の数2 方向(0°, 45°)
隠された元画像(正解)
1
1
8
1
1
1
1
8
1
1
8
8
8
8
8
1
1
8
1
1
1
1
8
1
1
逆投影による再構成画像
6.5
7.0
28.5
15.0
12.0
7.0
14.5
29.0
12.0
15.0
14.5
15.0
26.0
15.0
14.5
15.0
12.0
29.0
14.5
7.0
12.0
15.0
28.5
7.0
6.5
各角度の投影データ(1次元の影)
角度 0°
角度 45°
💡 逆投影の仕組み:

各角度の投影値 pθ(s)p_\theta(s) を、その角度の方向に沿って画像平面へ引き伸ばして重ね合わせています。 角度数を増やすほど、様々な方向からの「ぼやけ」が打ち消し合い、元画像の十字パターンが鮮明に浮かび上がってきます。

↑ 角度スライダーを1(1方向のみ)にすると再構成画像は縦や横に伸びたぼやけた筋になりますが、4方向すべてを使うと元の十字パターンにかなり近づきます。実際のCT装置では数百〜数千の角度からフィルタ補正逆投影法(FBP)で再構成しています。

直感チェック!ミニクイズ

CT画像の逆投影法において、使用する撮影角度の数を増やすと再構成画像はどうなるか?

Layer 2 — 定義・受験・証明

定義

2次元の密度分布 f(x,y)f(x, y)(CTでいえば体内組織のX線吸収係数の分布)に対して、角度 θ\theta の方向に垂直な直線群に沿って線積分(=その方向への影)を取ったものを「ラドン変換」と呼び、投影データ pθ(s)p_\theta(s) を得る。

pθ(s)=∫−∞∞f(scos⁡θ−usin⁡θ,  ssin⁡θ+ucos⁡θ) dup_\theta(s) = \int_{-\infty}^{\infty} f\big(s\cos\theta - u\sin\theta,\; s\sin\theta + u\cos\theta\big)\, du

CT画像再構成の最も素朴な方法である「単純逆投影(Back-Projection)」は、この投影データを元の平面へ「その角度の方向に一様に引き伸ばして」加算し直す操作であり、複数角度 θ1,…,θK\theta_1, \ldots, \theta_K 分を足し合わせることで断面画像の近似 f^(x,y)\hat f(x,y) を得る。

f^(x,y)=∑k=1Kpθk(xcos⁡θk+ysin⁡θk)\hat f(x, y) = \sum_{k=1}^{K} p_{\theta_k}\big(x\cos\theta_k + y\sin\theta_k\big)

公式・数理モデル

pθ(s)=∫f(x,y) du (直線上の積分),f^(x,y)=∑k=1Kpθk(xcos⁡θk+ysin⁡θk)p_\theta(s) = \int f(x,y)\, du \ \text{(直線上の積分)}, \qquad \hat f(x,y) = \sum_{k=1}^{K} p_{\theta_k}(x\cos\theta_k + y\sin\theta_k)

証明・導出

単純逆投影がなぜ角度数を増やすほど元画像に近づくのか(直感的な導出):

単一の角度 θ\theta の投影 pθ(s)p_\theta(s) を逆投影すると、これは「本来1点にあるはずの密度を、その角度の直線全体に均等にばらまいた」ぼやけた画像になる。これを数式で表すと、単純逆投影で得られる画像は、真の画像 ff と「星形(放射状)のぼやけを持つカーネル」の畳み込みに等しいことが知られている。

f^K(x,y)=(f∗hK)(x,y),hK(x,y)∝1x2+y2 (角度数 K→∞ の極限で)\hat f_K(x,y) = (f * h_K)(x,y), \qquad h_K(x,y) \propto \frac{1}{\sqrt{x^2+y^2}} \ (\text{角度数 } K \to \infty \text{ の極限で})

ここで hKh_K は「原点付近で強く、離れるほど 1/r1/r で減衰する」ぼやけカーネルである。角度の数 KK が少ないと、hKh_K はまだ数本の放射状の筋(アーチファクト)を強く残した形をしているが、KK を増やすほど様々な方向の筋が重なり合って平均化され、hKh_K は原点に鋭いピークを持つ滑らかな関数に近づいていく。

これは、多数の角度からの「線状のぼやけ」が、互いに違う方向を向いているために打ち消し合い(建設的に重なるのは真の密度がある場所だけ)、統計的に見ると元の形の輪郭部分だけが強め合って浮かび上がる、という仕組みである。

実際の医療用CTでは、この単純逆投影がもたらす 1/r1/r 型のぼやけを補正するために、投影データをフーリエ変換して高周波成分を強調するフィルタ(ランプフィルタ)をかけてから逆投影する「フィルタ補正逆投影法(Filtered Back-Projection, FBP)」が標準的に用いられ、これによりぼやけのない正確な画像再構成が可能になる。

押さえておきたいポイント

  • CTは物体の内部を直接見ているのではなく、あらゆる角度からの「影の情報(投影)」だけから断面を数学的に逆算している
  • 使用する角度の数が少ないと、放射状の筋(星条旗のようなアーチファクト)が残るが、角度を増やすほどそれらが平均化されて鮮明な形に近づく
  • 実際の医療用CTでは、単純逆投影のぼやけを補正する「フィルタ補正逆投影法(FBP)」や、統計的な繰り返し計算による「逐次近似再構成法」が使われている
  • ラドン変換とフーリエ変換の間には「投影切断定理(Fourier Slice Theorem)」という深い関係があり、CT画像再構成理論の中心的な定理になっている
参照基準・学習指導要領との対応

本トピックの内容・数理モデルは、文部科学省学習指導要領(算数・数学・情報)および国際標準カリキュラムに準拠し、エンジニアリング現場の実装事例と照らし合わせてMath World Lab編集部により検証・作成されています。

Layer 3 — 工学応用・現場実装

医療用CTスキャンにおける投影データの取得と逆投影による画像再構成

小さなグリッド上のテスト画像に対し、複数角度からの投影(各方向へのセル値の総和)を計算し、それらを単純逆投影で足し合わせて元画像を近似復元する。実際のCT装置ではこれをフィルタ補正逆投影法(FBP)や逐次近似法に置き換え、数百〜数千の角度・高解像度データで人体断面を再構成している。

1import numpy as np
2
3def project(image: np.ndarray, angle_deg: float) -> np.ndarray:
4 """指定した角度に画像を回転してから列方向に総和を取り、1次元の投影データを得る"""
5 from scipy.ndimage import rotate
6 rotated = rotate(image, angle_deg, reshape=False, order=1, mode="constant")
7 return rotated.sum(axis=0) # 各列(=その角度に垂直な直線)ごとの合計
8
9def back_project(projection: np.ndarray, angle_deg: float, shape) -> np.ndarray:
10 """1次元の投影データを、その角度の方向に一様に引き伸ばして2次元へ戻す"""
11 from scipy.ndimage import rotate
12 smeared = np.tile(projection, (shape[0], 1)) # 列方向に同じ値を複製(引き伸ばし)
13 return rotate(smeared, -angle_deg, reshape=False, order=1, mode="constant")
14
15# 5x5のテスト画像(中央に高密度の十字型パターン、隠された「図形」に相当)
16image = np.zeros((5, 5))
17image[2, :] = 5 # 横線
18image[:, 2] = 5 # 縦線
19
20angles = [0, 45, 90, 135] # 使用する撮影角度を増やすほど再構成が鮮明になる
21reconstruction = np.zeros_like(image, dtype=float)
22
23for angle in angles:
24 proj = project(image, angle)
25 reconstruction += back_project(proj, angle, image.shape)
26
27reconstruction /= len(angles) # 角度数で正規化
28print("逆投影による再構成画像:\n", np.round(reconstruction, 2))

次に学ぶならコレ!おすすめトピック

この単元と深い繋がりを持つ、あわせて学ぶと理解が深まるおすすめ単元

数理モデル・概念が近い関連トピック

関連度高大学数学

情報エントロピー

確率分布の「乱雑さ・予測不能性」を測るシャノンの公式と、データ圧縮の理論的限界

関連度高工学応用

ニューラルネットワークの数学(順伝播と活性化関数)

入力に重みを掛けて足し合わせ、非線形関数で発火させるAIの基本素子

関連度高工学応用

レコメンドの仕組み(コサイン類似度とベクトル検索)

ユーザーの好みと商品の近さを「ベクトルのなす角」で判定するアルゴリズム

同じレベルで次に挑戦したいトピック

同レベル推薦工学応用

勾配降下法

谷底を探すAIの基本アルゴリズム

"PASS"c=mᵉ%n
同レベル推薦工学応用

RSA暗号と素数の秘密(公開鍵暗号)

「掛け算は簡単だが、素因数分解は極めて困難」という非対称性を利用した現代暗号の金字塔

同レベル推薦工学応用

最短経路探索(ダイクストラ法とA*アルゴリズム)

グラフ上の無数のルートから「最もコストが小さい道」を一瞬で見つけ出す数学

工学・実社会での応用先でつながるトピック

工学・実践連携小学校・算数

平均値・中央値・データの活用

棒グラフを動かして、平均と中央値の違いを体で覚えよう

工学・実践連携中学数学

四分位範囲・箱ひげ図

データを並べて4等分すると、散らばり具合が一目でわかる

✨1% 排出100連ガチャ当選 63.4%爆死 36.6%1/e の法則
工学・実践連携中学数学

ガチャ確率と大数の法則(確率の心理バイアス)

「確率1%を100回引けば当たる?」余事象と二項分布が暴くスマホゲームの現実

あなたの数学力をさらに伸ばす

数学の弱点診断や算数パズルに挑戦してみませんか?

簡単な質問に答えてあなたにぴったりの学習ロードマップを発見したり、直感を試すパズルで数の面白さを体験できます。