アフィン変換について - 新潟大学歯学部nisiyama/grad/affine.pdfx x y y z z 左手系...

19
大学院・演習, 2012.07.17初版, 2013.09.30, 2020.05.26改訂 アフィン変換について 新潟大・院歯・顎顔面放射線 西山秀昌

Upload: others

Post on 07-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

大学院・演習, 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改訂

たとえば・・・

1回目元画像処置前などの画像

2回目処置後などの画像

大学院・演習, 2012.07.17初版, 2013.09.30, 2020.05.26改訂

方法1物体の座標を変換する方法

①物体を3次元空間内で回転させた後

大学院・演習, 2012.07.17初版, 2013.09.30, 2020.05.26改訂

方法1物体の座標を変換する方法

②平行移動させて③比較する(重ね合わせる)

大学院・演習, 2012.07.17初版, 2013.09.30, 2020.05.26改訂

方法2座標系を変換する方法

①座標系を3次元空間内で回転させた後

大学院・演習, 2012.07.17初版, 2013.09.30, 2020.05.26改訂

注意!

回転方向が反対

方法2座標系を変換する方法

②平行移動させて③比較する(重ね合わせる)

大学院・演習, 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

軸を合わせる。

z

z’

y’

x’

z’z

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改訂