簡體   English   中英

opencv triangulatePoints產生NaN值

[英]opencv triangulatePoints resulting in NaN values

我正在嘗試從Motion代碼實現標准的Structure,但是triangulatePoints導致NaN值。 我執行以下步驟-

  1. 獲取圖像1和圖像2的ORB功能。
  2. 匹配功能。
  3. 使用findEssentialMat()從匹配的功能和可用的相機固有信息中獲取基本矩陣
  4. 使用recoverPose()獲取攝像機2的姿勢。假定攝像機1位於原點。
  5. 獲取camera1和camera2的投影矩陣。
  6. 使用triangulatePoints()獲取3D點。

我已經嘗試過Matlab triangulate()函數以及camera1和camera2的投影矩陣以及上面獲得的匹配點。 如果使用Matlab,我會得到很好的結果。 但是在C ++(Opencv 3.3)中使用opencv可以得到NaN值。

我也遇到了來自opencv的triangulatePoints的問題。 這是由於輸入點數組的類型錯誤:

  • 點的形狀必須為: 2xN或大小為1xN或Nx1的兩通道矩陣
  • 必須為float類型

除此之外,我唯一想到的另一件事可能是計算出的3d點是無窮大,因此在轉換為歐幾里得坐標后,它們被零除-> NaN

暫無
暫無

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

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