大学院・演習, 2012.07.17初版, 2013.09.30, 2020.05.26改訂 アフィン変換について 新潟大・院歯・顎顔面放射線 西山秀昌
注意すべき事項
「右手系」か「左手系」かにて注意すべきは、対象が物体か座標系かという点。座標変換する対象が「物体」か「座標系」そのものかで、回転方向が反転する。
x x
y y
zz
右手系左手系
右手系:右回りを正の回転方向とする。左手系:左回りを正の回転方向とする。z軸の正の方向に対し、xの正の方向からyの正の方向へ回転する方向で定義される。
大学院・演習, 2012.07.17初版, 2013.09.30, 2020.05.26改訂
アフィン変換とは?(数学的な表現)
• Wikipediaでは– https://ja.wikipedia.org/wiki/アフィン写像
• 上記から定義的な部分を抜き出すと・・・–線型変換(回転、拡大縮小、剪断)と平行移動の組み合わせ。
–アフィン写像は位置ベクトルの空間としての V(A) と V(B) の間で、線型写像 T = V(f) と定ベクトルb による平行移動の合成 y = Tx + b として作用することがわかる(位置ベクトルについてみればV(f) と b の分だけずれている)。
大学院・演習, 2012.07.17初版, 2013.09.30, 2020.05.26改訂
何に使うのか?
• 別々の時期に(ないし別の方法にて)撮影した3次元画像の重ね合わせ。
• インプラントなどでの画像の重ね合わせ。
• アフィン変換のうち、回転と平行移動のみを用いる。
• 拡大・縮小は用いない。
大学院・演習, 2012.07.17初版, 2013.09.30, 2020.05.26改訂
どうやって使うのか?
• DICOMタグ内部に埋め込まれている3次元位置情報を利用する。
• エクセルシートを使って、簡単に計算(変換)することができる。
• 回転方向は「右手系・左手系」、「物体を回転させる・座標軸を回転させる」、によって逆転するので注意!!
大学院・演習, 2012.07.17初版, 2013.09.30, 2020.05.26改訂
拡大率一定のアフィン変換=回転+平行移動 (2次元版)
点Q 𝑋, 𝑌 は、点P x,y をθ回転: 𝑅 𝜃 し、平行移動: S dx,dy することで得られる。
Q 𝑋, 𝑌 = 𝑅 𝜃 ⋅ P x,y + S dx,dy
𝑋𝑌
=cos 𝜃 − sin 𝜃sin 𝜃 cos 𝜃
𝑥𝑦 +
𝑑𝑥𝑑𝑦
𝑋 = 𝑥 ⋅ cos 𝜃 − 𝑦 ⋅ sin 𝜃 + 𝑑𝑥𝑌 = 𝑥 ⋅ sin 𝜃 + 𝑦 ⋅ cos 𝜃 + 𝑑𝑦
この抽象的な式は、行列を用いて、下記の様に表すことができる。
この行列が入った式は、下記のように展開できる。 𝑋𝑌
=𝑎 𝑏𝑐 𝑑
𝑥𝑦
𝑋 = 𝑎𝑥 + 𝑏𝑦𝑌 = 𝑐𝑥 + 𝑑𝑦
2x2行列を展開すると
電卓があれば、計算できる。エクセルシートがあれば、簡単に変換できる。破線で囲った式を使うだけ。
大学院・演習, 2012.07.17初版, 2013.09.30, 2020.05.26改訂
応用回転中心を固定する場合(2次元版)
O x0,y0 を中心とした回転とする場合。
Q 𝑋, 𝑌 = 𝑅 𝜃 ⋅ P x,y − O x0,y0 + O x0,y0
𝑋𝑌
=cos 𝜃 − sin 𝜃sin 𝜃 cos 𝜃
𝑥 − x0𝑦 − y0
+x0y0
𝑋 = 𝑥 − x0 ⋅ cos 𝜃 − 𝑦 − y0 ⋅ sin 𝜃 + x0𝑌 = 𝑥 − x0 ⋅ sin 𝜃 + 𝑦 − y0 ⋅ cos 𝜃 + y0
電卓があれば、計算できる。エクセルシートがあれば、簡単に変換できる。破線で囲った式を使うだけ。
大学院・演習, 2012.07.17初版, 2013.09.30, 2020.05.26改訂
この抽象的な式は、行列を用いて、下記の様に表すことができる。
この行列が入った式は、下記のように展開できる。 𝑋𝑌
=𝑎 𝑏𝑐 𝑑
𝑥𝑦
𝑋 = 𝑎𝑥 + 𝑏𝑦𝑌 = 𝑐𝑥 + 𝑑𝑦
2x2行列を展開すると
拡大率一定のアフィン変換=回転+平行移動 (3次元版)
𝑋𝑌𝑍
= 𝑅𝑧 𝜃 ⋅ 𝑅𝑦 𝜌 ⋅ 𝑅𝑥 𝜎 ⋅𝑥𝑦𝑧
+𝑑𝑥𝑑𝑦𝑑𝑧
𝑅𝑥 𝜎 =1 0 00 cos 𝜎 − sin 𝜎0 sin 𝜎 cos 𝜎
𝑅𝑦 𝜌 =cos𝜌 0 − sin 𝜌0 1 0
sin𝜌 0 cos 𝜌
𝑅𝑧 𝜃 =cos𝜃 − sin 𝜃 0sin𝜃 cos 𝜃 00 0 1
ある軸周りの回転を行う行列は、回転軸に相当する行・列の部分を1か0にする。行番号と列番号が同じなら「1」異なるなら「0」を入れる。
残りの2x2部分にcos,-sin,sin,cosを入れていく。
𝑋𝑌𝑍
=𝑙 𝑚 𝑛𝑜 𝑝 𝑞𝑟 𝑠 𝑡
𝑥𝑦𝑧
𝑋 = 𝑙𝑥 + 𝑚𝑦 + 𝑛𝑧𝑌 = 𝑜𝑥 + 𝑝𝑦 + 𝑞𝑧𝑍 = 𝑟𝑥 + 𝑠𝑦 + 𝑡𝑧
3x3行列を展開すると
Rx(σ):x軸周りのσ度回転Ry(ρ):y軸周りのρ度回転Rz(θ): z軸周りのθ度回転
回転の軸の順番が変わると、別の回転になるので注意!!
x, y, z軸周りの順で回転
大学院・演習, 2012.07.17初版, 2013.09.30, 2020.05.26改訂
任意に軸を設定可能な場合3次元の重ね合わせで必要な回転数
• 3軸全てについて回転させる必要は無い。
• 2回の回転で十分!!
– 例えば、物体をx軸周りに回転させ※、物体のz軸と座標のz軸を合わせる。
– 次に、z軸周りに回転させ、xy
軸を合わせる。
x
y
z
z’
y’
x’
z’z
x
y
y’x’
物体のx,y,z軸は任意に設定可能。たとえば、両側ポリオンの中点を原点とし、ポリオンを結ぶ軸をx軸とするなど。
※z軸とz’軸が同一平面になるように便宜的にx軸を選ぶことになる。概念的に2回で済むが、厳密には下準備としてz軸周りの回転操作が必要になる。
大学院・演習, 2012.07.17初版, 2013.09.30, 2020.05.26改訂
-15
-10
-5
0
5
10
15
20
-60 -50 -40 -30 -20 -10 0 10
Polion
結節上方斜面(0度)
結節最下端
筋突起先端
結節上方斜面(25度)
L-SSAT/Po-Orb
L-eminence
L-coronoid p.
L-SSAT/25deg-15
-10
-5
0
5
10
15
20
-80 -60 -40 -20 0 20 40 60 80
Polion
結節上方斜面(0度)
結節最下端
筋突起先端
結節上方斜面(25
度)
L-SSAT/Po-Orb
L-eminence
L-coronoid p.
L-SSAT/25deg
-60
-55
-50
-45
-40
-35
-30
-25
-20
-15
-10
-5
0
-80 -60 -40 -20 0 20 40 60 80
Polion
結節上方斜面(0度)
結節最下端
筋突起先端
結節上方斜面(25
度)
L-SSAT/Po-Orb
L-eminence
L-coronoid p.
L-SSAT/25deg
-15
-10
-5
0
5
10
15
20
-60 -50 -40 -30 -20 -10 0 10
Polion
結節上方斜面(0度)
結節最下端
筋突起先端
結節上方斜面(25度)
L-SSAT/Po-Orb
L-eminence
L-coronoid p.
L-SSAT/25deg
前方
下方
左右
左右
下方
前方
上面観
(mm)
正面観
(mm)
側面観
(mm)
(mm)
(mm) (mm)
眼耳平面(0度)でのトレース
25度傾斜時のトレース
基準平面を変えた場合のトレースした線の重ね合わせ例
大学院・演習, 2012.07.17初版, 2013.09.30, 2020.05.26改訂
エクセルシートでの計算例撮影日時の異なる2回のCT画像の重ね合わせ30点以上を対象としてアフィン変換した例
大学院・演習, 2012.07.17初版, 2013.09.30, 2020.05.26改訂
-15
-10
-5
0
5
10
15
20
-80 -60 -40 -20 0 20 40 60 80
Polion
R-SSAT/Po-Orb
R-eminence
R-coronoid p.
R-SSAT/25deg
L-SSAT/Po-Orb
L-eminence
L-coronoid p.
L-SSAT/25deg
-15
-10
-5
0
5
10
15
20
-80 -60 -40 -20 0 20 40 60 80
Polion
R-SSAT/Po-Orb
R-eminence
R-coronoid p.
R-SSAT/25deg
L-SSAT/Po-Orb
L-eminence
L-coronoid p.
L-SSAT/25deg
例:正面観比較 (1回目、2回目)
大学院・演習, 2012.07.17初版, 2013.09.30, 2020.05.26改訂
-50
-45
-40
-35
-30
-25
-20
-15
-10
-5
0
-80 -60 -40 -20 0 20 40 60 80
Polion
R-SSAT/Po-Orb
R-eminence
R-coronoid p.
R-SSAT/25deg
L-SSAT/Po-Orb
L-eminence
L-coronoid p.
L-SSAT/25deg
-50
-45
-40
-35
-30
-25
-20
-15
-10
-5
0
-80 -60 -40 -20 0 20 40 60 80
Polion
R-SSAT/Po-Orb
R-eminence
R-coronoid p.
R-SSAT/25deg
L-SSAT/Po-Orb
L-eminence
L-coronoid p.
L-SSAT/25deg
例:上面観比較 (1回目、2回目)
大学院・演習, 2012.07.17初版, 2013.09.30, 2020.05.26改訂
-15
-10
-5
0
5
10
15
20
-50 -40 -30 -20 -10 0 10
Polion
R-SSAT/Po-Orb
R-eminence
R-coronoid p.
R-SSAT/25deg
L-SSAT/Po-Orb
L-eminence
L-coronoid p.
L-SSAT/25deg
-15
-10
-5
0
5
10
15
20
-50 -40 -30 -20 -10 0 10
Polion
R-SSAT/Po-Orb
R-eminence
R-coronoid p.
R-SSAT/25deg
L-SSAT/Po-Orb
L-eminence
L-coronoid p.
L-SSAT/25deg
例:側面観比較 (1回目、2回目)
大学院・演習, 2012.07.17初版, 2013.09.30, 2020.05.26改訂