簡體   English   中英

通過OpenCV的攝像機校准估算旋轉角度

[英]Estimating rotation angles from camera calibration of opencv

我一直無法理解opencv的Calib3d.calibrateCamera()功能所返回的旋轉矢量。 為了理解該函數的返回值,我嘗試了以下步驟。

我首先用Java生成了棋盤圖案。 然后,我對其應用了15個旋轉矢量和15個平移矢量。 我還應用了代表相機本征矩陣的已知矩陣。 我基本上是試圖重新創建為國際象棋拍攝許多照片的手動過程。 我創建的某些圖像如下所示: 我生成的帶有確定角的圖像之一

生成圖像后,我通過角落識別和相機校准功能對它們進行了處理。 我從校准函數中獲得了幾乎完全使用的本征矩陣。

當我比較用於生成圖像的旋轉矢量和從校准函數獲得的矢量時,它們互為負。 比較圖如下所示:

比較輸入和輸出繞x軸的旋轉值

這是正常行為還是我做錯了什么?

答案為opencv旋轉是從圖像坐標系到對象坐標系。 這可能是原因嗎?

如果預期旋轉矢量和實際旋轉矢量彼此相反,則意味着預期旋轉矩陣和實際旋轉矩陣彼此相反。 因此,您可能混淆了源坐標系和目標坐標系。

通常,這很容易檢查:

  1. 將[R | t]矩陣應用於與圖案角相對應的3D點
  2. 使用內在矩陣將它們投影到圖像中
  3. 檢查拐角投影的值與圖像中觀察到的值一致。 如果它們不一致,請對逆旋轉矩陣嘗試相同的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM