我想估计一个物体到我的相机的距离。这必须使用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. 移动物体的距离
- 2. 识别拍摄图像中的物体
- 3. OpenCV立体相机,检测物体距离
- 4. 从拍摄的真实物体中360度旋转物体
- 5. OpenCV计算已知尺寸物体的距离
- 6. 远离Unity3D重叠近距离物体的物体
- 7. 使用OpenCV跟踪物体的多摄像机校准
- 8. 计算我拍照的地方和拍摄的对象之间的距离
- 9. 相机与物体的距离
- 10. 3D物体的相机距离
- 11. 相机和物体之间的距离?
- 12. OpenCV计算距离(立体视觉)
- 13. 离子2拍摄现场
- 14. Logitech quickcam pro 9000用openCV拍摄拜尔
- 15. 使用python测量图片中物体之间的距离
- 16. 使用OpenCV在python上不使用led灯拍摄图片
- 17. 如何找到华硕xtion亲相机OpenCV的物体距离,ROS
- 18. 根据距物体的距离改变颜色
- 19. Android的 - 拍摄照片和作物
- 20. 拍摄后的Android作物图像
- 21. Libgdx实现拍摄(子弹和物体之间的碰撞)
- 22. 使用opencv拍摄并保存ycbcr格式的图像
- 23. 在opencv中拍摄多张照片
- 24. d3如何均衡距离中心圆周上的物体的距离
- 25. 子弹物理中物体间的最小距离
- 26. OpenCV的编辑拍摄的IP摄像机
- 27. 使用OpenCV和C++拍摄Keypress上的摄像头反馈截图
- 28. ListView中的物理距离
- 29. 用opencv计算到红点的距离
- 30. 当拍摄背景时拍摄iOS拍摄的快照
你知道物体和传感器的尺寸吗? – Niko 2013-04-27 09:06:52
我只知道对象的尺寸。传感器是什么意思?我有相机 – 2013-04-27 09:25:01
您一定需要知道相机传感器上像素的大小,例如mm。如果您没有这些信息但知道相机的焦距,则可以通过校准确定像素大小。 – Niko 2013-04-27 09:37:42