2011-05-05 76 views

回答

-2

你需要了解數學。

如果頁面不夠,那麼你應該看看opencv book - 它專門討論了幾個章節。然後有很多教科書更詳細地介紹它

-1

首先,這並非真正的立體聲對。一個很好的立體聲對需要有60%-80%的重疊,通常圖像之間的旋轉差異很小。即使這對具有必要的BASE成爲一個很好的立體聲對,由於kappa的極端旋轉,所產生的極線圖像將是無用的。

其次等等,你應該看看相機校準和共線方程都是由OpenCV的

http://en.wikipedia.org/wiki/Camera_resectioning

http://en.wikipedia.org/wiki/Collinearity_equation

+0

您似乎受自己的經驗限制。這是一個很好的立體聲對,具有不錯的重疊和體面旋轉。 70度旋轉和相機之間70釐米的距離,我有很好的效果。結果令人敬畏的事實意味着你所說的只是無稽之談。請參閱我們的設置和生成的3D地圖:https://www.youtube。com/watch?v = er5N1Zv3oac – TimZaman 2015-03-04 14:29:20

+0

取決於您的最終目標是什麼,使用這樣的立體像對,您只能獲得相對深度尺度並且幾乎沒有有用的測量數據。我承認我的經驗僅限於像這樣的巨大攝影測量項目http://acropolis-gis.ysma.gr/el/%CE%B5%CE%BE%CE%B5%CF%81%CE%B5%CF %85%CE%BD%CE%AE%CF%83%CF%84%CE%B5-%CF%84%CE%B9%CF%82-%CE%BF%CF%81%CE%B8%CE %BF%CE%B5%CE%B9%CE%BA%CF%8C%CE%BD%CE%B5%CF%82-%CF%84%CF%89%CE%BD-%CF%80%CE %B5%CF%81%CE%B9%CE%BC%CE%B5%CF%84%CF%81%CE%B9%CE%BA%CF%8E%CE%BD-%CF%84%CE% B5%CE%B9%CF%87%CF%8E%CE%BD – elasticrash 2015-03-05 16:45:00

+0

完全不真實。這只是一個簡單的問題,有2個點(2個光學中心)和2個矢量,只是三角形。你應該知道'小旋轉'和重疊的數量根本就沒有意義。如果我以40度角拍攝9張圖像,我仍然可以通過攝影測量來製作3D模型。從這裏你會知道度數很好。由於給定了參考點的絕對位置,所以很容易獲得絕對尺度。你的極線圖像不會無用,它們不會是方形的。相信我,一直在那裏,做到這一點,工作。請參閱鏈接。 – TimZaman 2015-03-05 21:16:33

4

你的「立體」的圖像都很好的支持。你已經做的是解決通信問題:在兩幅圖像中你都指出了點'A'。這意味着你知道哪個像素對應於彼此標記點'A'。

你想做什麼,是三角你的相機在哪裏。你只能通過首先校準你的相機來做到這一點。這已經是OpenCV的內部了。 http://docs.opencv.org/doc/tutorials/calib3d/camera_calibration/camera_calibration.html http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html

這給你的光的每一個矢量的準確矢量/射線,並通過該光線通過部攝影機的光學中心。而且,你需要立體聲校準。這確定了每個攝像機相互之間的方向和位置。

從這一點開始,您的三角測量很簡單,知道點'A'的兩個圖像中的像素位置。你有

  • 位置和攝像頭1和攝像頭的方向2
  • Otical光線矢量從攝像頭(像素位置)來標記「A」。

所以你有2個位置在太空中,2個來自這些位置的光線。這些光線的交集是你的3D答案。

請注意,在實踐中,射線將永遠不會完全相交(3D中很少有2條線),因此您需要近似。使用opencv函數triangulatePoints(),使用立體聲校準的輸入和與標籤A相關的像素索引。

+0

所以http://stackoverflow.com/questions/16295551/how-to-correctly-use-cvtriangulatepoints可能是一個很好的聯繫? – 2016-01-23 02:46:00