opencv - 查找从相机到已知大小物体的距离

标签 opencv webcam object-recognition

我正在尝试使用 opencv 编写一个程序来计算从网络摄像头到一英寸白色球体的距离。我觉得这应该很容易,但无论出于何种原因,我都是一片空白。感谢您提前提供帮助。

最佳答案

您可以使用三角形相似度来校准相机角度并找到距离。
您知道球的尺寸:D 单位(例如 cm)。将它放在相机前面已知距离 Z 处,比如 1 米 = 100cm,并测量其表观宽度(以像素为单位)。将此宽度称为 d
相机的焦距 f(不同相机略有不同)则为 f=d*Z/D

当你用这个相机再次看到这个球,它的表观宽度是d'个像素,然后通过三角形相似度,你知道f/d'=Z'/D 因此:Z'=D*f/d' 其中 Z' 是球与相机的当前距离。

关于opencv - 查找从相机到已知大小物体的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6714069/

相关文章:

visual-studio-2008 - CBlobResult令人费解。使用Visual C++2008。OpenCV

c++ - c++类与OpenCV矩阵运算之间的转换

ajax - 无法将 Canvas 数据从 Javascript AJAX 发送到 PHP 页面

c# - 如何从 Kinect 深度数组中获取位置 (x,y)?

image-processing - 使用 OpenCV Haar 级联分类器查找形状

c++ - 在不复制数据的情况下更改 opencv mat 中的列顺序

ios - 如何使用opencv将相机坐标转换为经纬度

unity3d - 是否可以将 ffmpeg 输出流式传输到虚拟网络摄像头/虚拟捕获设备/AVFoundation 对象?

python - OpenCV imshow 函数在 jupyter notebook 中显示黑色图像

opencv - 如何通过了解像素和相机与物体之间的距离来计算图像尺寸?