2015-02-11 18 views
0

我想知道如果我有這個想法寫下來,我已經爲我的相機進行了校準,現在我只想在x軸上獲取相機相對於相機的角度,水平。 我想我可以在已知像素值的圖像上放置一些網格線,並將它們與已知真實世界距離的網格線相匹配,並以此方式計算每像素的角度,從而瞭解三角形的距離。從圖像中心0度開始,隨着我們向右移動+ X度並向左移動-X像素。物體相對於相機和視頻的角度?視頻和攝像頭輸出不同

假設這是一個正確的方法,出於某種原因,我正在使用的視頻記錄在704x576像素,但是當我將相機插入我的電腦以使用它的640x480像素,並且它是相同的拍攝錄像的相機。我認爲這會在一定程度上影響我的結果,校準和我想要的每像素角度測量。我在C++中使用OpenCV,我想知道是否有一種方法/函數來調整屏幕大小,當我將相機調用到704x576時,並且如果以這種大小進行測量,我可以獲得每個像素稍微精確的角度測量?還是我需要做點別的?

我還在想方設法繞過攝像機幾何圖形和openCV,任何幫助將非常感謝,謝謝。

回答

0

這可能比您想象的要容易。假設您的相機具有60.0度水平視場(FOV)。比沿X軸的每個像素只有60.0/640度。你可以很容易通過考慮與由屏幕寬度的焦距矢量和半兩側形成一直角三角形計算FOV:

FOV = 2 * ATAN(二分之六百四十○,焦),其中焦距爲以像素爲單位

例如,焦點= 500像素 FOV = 2 * atan(640/2,500)= 1.14rad = 65.2deg

有一點需要記住的是焦距與屏幕分辨率成比例地變化。例如,如果您基於640x320圖像計算focal = 500,則對於320x160 image focal = 250計算。

+0

嗨弗拉德,感謝您的幫助。 – Dave 2015-02-13 09:31:08

相關問題