[線代] 改變座標系後計算新的Affine transform

看板Math作者 (ka)時間5年前 (2019/04/21 09:09), 5年前編輯推噓0(0015)
留言15則, 3人參與, 5年前最新討論串1/1
也在stackoverflow問了 https://stackoverflow.com/questions/55774677 目前我在做一些醫學3D影像的研究 需要計算一些affine transform的矩陣 事情是這樣,我手上有一些voxel size不是正方形的3D影像 (voxel就是3D的像素) 我已經寫了一些code來把他們插值成正方形 只是我不會計算新的affine 這個affine負責把voxel座標投影到現實的座標 例如第[128 128 10]個voxel和affine點積會變成[-192 192 -64]表示病人在掃描的時候掃描器的座標 如果今天我把一個256 x 256 x 20個voxel的3D影像插值成 256 x 256 x 120 那麼新的affine X就應該要滿足 [128 128 60] X = [-192 192 -64] 如果是方陣 我知道 A點積X=B 可以求 X=A的反矩陣 點積 B 但是我的A不是方陣,沒辦法求反矩陣 請問大家有什麼想法嗎? 謝謝各位 ----- Sent from JPTT on my Asus ASUS_Z01KDA. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 173.63.8.69 ※ 文章網址: https://www.ptt.cc/bbs/Math/M.1555808979.A.421.html

04/21 12:51, 5年前 , 1F
A非方陣Ax=b依然存在通解不是嗎
04/21 12:51, 1F

04/21 12:52, 5年前 , 2F
google: Gauss elimination
04/21 12:52, 2F
看了一下如果只有一組Ax=B可以用LSQ來求最小Euclidean 2-norm 但我的狀況是有256 x 256 x 20組已知Ax=B 那麼是不是可以用更iterative的演算法來逼近x

04/21 22:12, 5年前 , 3F
Affine trans不就是一個可逆變換加位移嗎
04/21 22:12, 3F

04/21 22:14, 5年前 , 4F
把affine trans的位移量減掉後看成3x3去做反矩陣
04/21 22:14, 4F

04/21 22:17, 5年前 , 5F
就可以知道兩者間如何轉換了
04/21 22:17, 5F
affine是從voxel space投影到scanner space的可逆變換 現在是因為voxel space的座標改變了,所要計算新的affine ※ 編輯: kaltu (107.77.224.34), 04/21/2019 23:14:34

04/22 02:25, 5年前 , 6F
原來座標[x y z] resample後變[x y 6z]
04/22 02:25, 6F

04/22 02:26, 5年前 , 7F
[x y z]*H1 和 [x y 6z]*H2 要得到同樣值 這這不需
04/22 02:26, 7F

04/22 02:29, 5年前 , 8F
要重新解反矩陣啊... 用看的就知把H1第三列縮放即可
04/22 02:29, 8F
舉例是舉例 但是常常是[sin(2/3 x) cos(2/3 y) 3.6z]這種鬼數字

04/22 02:31, 5年前 , 9F
另外影像處理通常是用homogeneous matrix做affine
04/22 02:31, 9F

04/22 02:31, 5年前 , 10F
比較方便 不用加來加去的
04/22 02:31, 10F
affine是homogeneous沒錯 參考 http://bit.ly/2vhviIF 因為是三維座標 所以affine A是3+1,4 x 4的homogeneous matrix http://i.imgur.com/NgeF3IX.jpg
voxel space座標V [I j k]和scanner space座標S [x y z]的關係是 http://i.imgur.com/Oh6zHZQ.jpg
我有一堆(V, S)pair希望能找到一個演算法逼近新的A' ※ 編輯: kaltu (173.63.8.69), 04/22/2019 03:10:12

04/22 23:24, 5年前 , 11F
如果已知轉換後的座標[x' y' z']和轉換前[x y z]的
04/22 23:24, 11F

04/22 23:25, 5年前 , 12F
關係是[x' y' z' 1]=[x y z 1]*H (這比較像你原文的
04/22 23:25, 12F

04/22 23:26, 5年前 , 13F
問題) 那要[x y z 1]*H1=[x' y' z' 1]*H2恆成立顯然
04/22 23:26, 13F

04/22 23:29, 5年前 , 14F
就是解H1=H*H2而已 你後來的問題(給定一堆對應點找
04/22 23:29, 14F

04/22 23:31, 5年前 , 15F
transformation)就較複雜 用到數值線性代數的技巧
04/22 23:31, 15F
文章代碼(AID): #1SkyBJGX (Math)