我想估計一個物體到我的相機的距離。這必須使用Opencv。 我讀過,我必須使用2個攝像頭來代替一個,我發現了一些Matlab的代碼,但我沒有任何經驗。 任何幫助將不勝感激。使用opencv拍攝物體的距離
回答
是的,這肯定是可以計算的深度使用簡單的針孔相機模型兩個攝像頭:
depth = bcm*fcm/(sensorWidthCm*disparity/(float)horizontalResolution);
這裏,爲了找到平均視差(關鍵點的水平像素位置的差別),可以使用SurfDescriptorExtractor
,並找到匹配對,你可以使用BFMatcher
爲鏈接: http://docs.opencv.org/doc/tutorials/features2d/feature_description/feature_description.html
FCM,BCM,sensorWidthCm和horizontalResolution是所有相機參數:fcm是相機焦距,bcm是相機的分離度,sensorWidthCm是相機傳感器寬度,horizontalResolution是水平方向的像素數。事實上,你不需要單獨需要所有這些參數。您只需要嘗試一些已知深度即可找到該比例:bcm*fcm/sensorWidthCm
在圖像捕獲過程中,水平圖像分辨率已爲人所知。
謝謝,但您的攝像頭傳感器寬度是什麼意思?我怎樣才能得到這樣的參數? – 2013-04-27 09:34:51
這是相機的圖像平面的寬度和投影到平面上的圖像的實際尺寸。無法直接計算此參數,因此您需要使用已知深度的對象進行校準,以使用上述公式提取bcm * fcm/sensorWidthCm比率。 – 2013-04-27 09:38:02
看到這個answer:
distance to object (mm) = focal length (mm) * real height of the object (mm) * image height (pixels) --------------------------------------------------------------------------- object height (pixels) * sensor height (mm)
您可以使用solvePnP函數,如果您知道對象的精確尺寸,並且它很容易檢測。您還需要運行相機校準以在相機座標中設置單位測量。
- 1. OpenCV計算已知尺寸物體的距離
- 2. 使用OpenCV跟蹤物體的多攝像機校準
- 3. 計算我拍照的地方和拍攝的對象之間的距離
- 4. 相機和物體之間的距離?
- 5. Logitech quickcam pro 9000用openCV拍攝拜爾
- 6. 離子2拍攝現場
- 7. 使用python測量圖片中物體之間的距離
- 8. 使用OpenCV在python上不使用led燈拍攝圖片
- 9. 如何找到華碩xtion親相機OpenCV的物體距離,ROS
- 10. 在opencv中拍攝多張照片
- 11. 根據距物體的距離改變顏色
- 12. 使用OpenCV和C++拍攝Keypress上的攝像頭反饋截圖
- 13. 用opencv計算到紅點的距離
- 14. ListView中的物理距離
- 15. 當拍攝背景時拍攝iOS拍攝的快照
- 16. 如何使用openCV檢測現場攝像機中的移動物體
- 17. 使用QTCaptureView拍攝照片
- 18. 使用UIImagePickerController拍攝圖像
- 19. 如何用相機測量物體的距離?
- 20. 拍攝鍵使用ADB HTC EVO拍攝截圖
- 21. 確定距離原點給定距離處物體的視覺大小(使用透視圖)
- 22. 使用OpenCV進行物體跟蹤
- 23. 離子收集 - 用離子收音機重複拍攝
- 24. 檢測物體並拍照
- 25. 在Linq拍攝沒有空物業的物品
- 26. 可以確定使用攝像頭的人的距離嗎?
- 27. 如何讓敵人在他進入所需距離時停下來拍攝
- 28. 如何使用iPhone中的相機測量物體之間的距離?
- 29. 用Sinon.JS拍攝async.waterfall
- 30. OpenCV的最大探測距離
你知道物體和傳感器的尺寸嗎? – Niko 2013-04-27 09:06:52
我只知道對象的尺寸。傳感器是什麼意思?我有相機 – 2013-04-27 09:25:01
您一定需要知道相機傳感器上像素的大小,例如mm。如果您沒有這些信息但知道相機的焦距,則可以通過校準確定像素大小。 – Niko 2013-04-27 09:37:42