簡體   English   中英

OpenCV triangulatePoints-用其正​​確輸入的坐標是什么?

[英]OpenCV triangulatePoints - what are the correct coordinates to feed it with?

以前,我使用另一種方法從兩個2D圖像確定3D位置。 對於這種(平庸的)方法,我必須獲得2D坐標,其原點位於圖像中心。 因此,我得到了很多負面價值。 OpenCV通常使用let底角作為坐標原點(完全沒有負值)

該應用程序用戶應該能夠使用這兩種方法。 我可以繼續以這種方式收集2D坐標,還是必須更改它? 如果不是,我是否必須使用圖像的新中心點( cv::stereoCalibrate結果)而不是默認的frame.cols/2frame.cols/2 ,frame.rows / 2)?

當使用OpenCV的triangulatePoints ,您需要作為參數傳遞:

  • projectionMatrixA隱式包含相機的固有參數(焦距和主點偏移 ,即從左側到頂部的像素偏移,應視為0,0)
  • projectionMatrixB除了固有的攝影機參數外,投影矩陣還反映了攝影機相對於某些坐標系的位置。 因此,如果您有兩個相同的攝像機,則兩個投影矩陣仍然會有所不同,因為它們的位置不同。
  • 2D點是使用projectionMatrixA 3D點的結果
  • 2D點是使用projectionMatrixB 3D點的結果

要回答這個問題,二維點具有負值這一事實沒有錯。

AFAIK,在calib模塊中,當處理2D點(像素坐標)時,坐標(0,0)應始終位於圖像中心附近,而不應位於左上角。 因此自然而然,圖像左側區域中的任何點的x <0,而圖像上部區域中的任何點的y <0。

暫無
暫無

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

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