2
我使用OpenCVs solvePnP讓相機的姿態/現在的位置。 我通過使用由用戶選擇的,在圖像上的點在已校準的和已申請的徑向和切向畸變修復這樣做。OpenCV的solvePnP barreldistoriton
然而,看起來solvePnP()除了在圖像中選擇的點之外還將失真係數作爲輸入,我認爲這意味着SolvePnP將失真固定應用於作爲給定函數的給定點。
這會在我的程序中產生一個小錯誤,因爲源圖像已經是桶形失真了,對吧?
如果是這樣,我怎麼能做出solvePnP()忽略barreldistortion?我可以傳遞一個矢量,將失真係數設置爲1嗎?或者我應該將所有值設置爲0? 其他一些方法?
啊,當然。我應該更好地閱讀文檔。 謝謝。 另一個問題:關於camera_mat,如果我使用initUndistortMap()+ remap()已經校正過的圖像,那麼哪種相機矩陣最適合作爲solvepnp的輸入?來自校正的相機矩陣,還是一個簡單的Mat :: eye()? –
更換'CV ::墊()'和'CV :: noArray()'有相同的效果反而使得意圖一點點清晰。 – Aurelius
@HenrikKjusAlstad照相機矩陣(稱爲C)MAPPS 3D世界座標到2D圖像座標。 solvePnP本質上返回一個變換(稱之爲T),使得C * T * world_coordinate = image_coordinate達到其最佳能力。您的相機矩陣由相機內部參數定義 – Hammer