簡體   English   中英

使用立體視覺計算從物體到相機的距離

[英]Calculating a distance from an object to a camera using stereo vision

我一直在嘗試計算物體與我的一台相機(同一型號)之間的距離。 校准后,我成功獲得以下矩陣。 分辨率為600 x 480。

Left Camera Matrix
[[624.65871068   0.         279.196958  ]
 [  0.         637.37379116 267.35689643]
 [  0.           0.           1.        ]]
Left Distortion Coefficients
[[ 0.07129149 -0.32551738  0.00165004  0.00582742  0.55830776]]
Right Camera Matrix
[[628.54997755   0.         278.88536288]
 [  0.         638.88299319 262.29519192]
 [  0.           0.           1.        ]]
Right Distortion Coefficients
[[ 0.05281363 -0.20836547  0.0015596   0.00694854 -0.18818856]]
Calibrating cameras together...
Rotation Matrix
[[ 9.78166692e-01 -2.92706245e-02 -2.05750220e-01]
 [ 2.87961989e-02  9.99571250e-01 -5.30056367e-03]
 [ 2.05817156e-01 -7.39989429e-04  9.78590185e-01]]
Translation Vector
[[6.87024126]
 [0.33698621]
 [0.82946341]]

如果我可以從兩個攝像機中檢測到一個物體,則可以說在左攝像機的像素(a,b)和右攝像機的(c,d)中找到了一個物體。 有什么辦法可以使一台相機到物體之間的距離?

另外,我擁有的腳本實現了cv2.stereoRectify和cv2.initUndistortRectifyingMap,可用於獲取固定幀,然后使用cv2.StereoBM_create()計算深度圖。 好吧,老實說,我不確定這是否可以用於計算距離。

謝謝!

在計算到攝像機的距離時,您需要從(通常為“左”)攝像機矩陣中了解兩個參數:(1)基線; (2)焦距。

通常,我們使用“ LEFT”圖像作為主要參考圖像,因為在大多數情況下,我們會基於左側圖像計算深度圖/視差圖像。

在左側圖像上具有對象(x,y)的坐標之后,可以對公式求逆,並按以下方式計算Z距離:

在此處輸入圖片說明

參考: OpenCV-立體圖像的深度圖

暫無
暫無

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

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