[問題] OpenCV 關於cvGetAffineTransform

看板C_and_CPP作者 (chi)時間13年前 (2012/04/30 21:49), 編輯推噓4(405)
留言9則, 3人參與, 最新討論串1/1
各位好 我想請問一下關於OpenCV的"cvGetAffineTransform"函數 這個函數是透過"三對"相互對應的點來計算出affine matrix 如果我有50個點要做對應的話 有沒有辦法把這個矩陣算的更精準一點? 請各位幫幫忙 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.107.172.190

04/30 21:54, , 1F
50是指五十對嗎? 三對可以得一到一組矩陣
04/30 21:54, 1F

04/30 21:55, , 2F
所以排列組合你可以得到很多組矩陣
04/30 21:55, 2F

04/30 21:56, , 3F
至於所謂的精準要你自己從這些解裡面去挑或是調整
04/30 21:56, 3F

04/30 21:56, , 4F
可以寫一個overdetermine去求最佳解
04/30 21:56, 4F
沒錯 是50對相互對應的點 請問A大有解決過類似的問題嗎 可以透漏一下大概是怎麼做的嗎 苦惱中QQ ※ 編輯: cygnus122 來自: 120.107.172.190 (04/30 22:02)

04/30 22:13, , 5F
改用 cv::estimateRigidTransform
04/30 22:13, 5F

04/30 22:13, , 6F
它會用ransac來除掉outliner
04/30 22:13, 6F

05/01 15:21, , 7F
樓上說的函式確實就是,不過從文件來看並不是用RANSAC,
05/01 15:21, 7F

05/01 15:23, , 8F
所以必須全部都是正確的對應點才行
05/01 15:23, 8F
好像是耶 我有些點不是正確的對應 算出來的結果就誤差很大... 請問還有沒有方法可以去逼近最佳解 ※ 編輯: cygnus122 來自: 120.107.172.190 (05/01 15:40)

05/01 15:54, , 9F
那就實現一下RANSAC吧
05/01 15:54, 9F
我可以用 cv::estimateAffine3D這個來做嗎 裡面有個參數叫做ransacThreshold 有人知道這個參數要怎麼設嗎 我google了一下 好像因為這個是要餵三維的點進去 轉換後誤差也有點大 有人使用過這個函數嗎 ※ 編輯: cygnus122 來自: 120.107.172.190 (05/01 16:07)
文章代碼(AID): #1FdfXz91 (C_and_CPP)