当前位置: 首页 > 知识库问答 >
问题:

获取人与摄像机之间的距离

贾俊喆
2023-03-14

我想知道人与摄像机之间的距离。我使用的是android摩托罗拉平板电脑。

我使用的是android的摄像头api——api级别14。

我使用以下公式:

objectDistnance = ((objectheight(pixel) * focal-length(mm)) / imageheight(pixel);

imageHeight是我预览屏幕的高度<我从相机api获得的焦距:4.42毫米
我输入的物体高度是人的身高,单位为mm:1620mm

我想计算人与摄像机的距离。

通过使用这个公式,我得到了错误的距离,它给了我60毫米,但实际上它超过了2500毫米

所以请大家帮我,我用的是正确的公式吗?

我该怎么做才能让人与摄像机保持正确的距离

共有1个答案

巢靖
2023-03-14

从这里我得到了以下公式:

distance to object (mm) = focal length (mm) * real height of the object (mm) * image height (pixels)
                          ---------------------------------------------------------------------------
                          object height (pixels) * sensor height (mm)

所以你似乎没有包含足够的参考变量。

让我们假设如下:

Focal Length: 4,42mm
Real Height of object: 1620mm
Image Height: 2048px
Object Height: 1024px
Sensor height: 24mm

4.42mm * 1620mm * 2048px
-----------------------
1024px * 24mm

结果将是1193 mm由于我不知道您的所有变量,因此无法重新计算您的情况。

编辑我刚刚用我的三星Galaxy S用以下值检查了这个公式:

3.79mm focal length 
100mm real object height
2592px image height
1200px object height on image
4.54mm sensor height

我在大约200-250毫米之外拍了一张照片(我没有测量确切的距离)。该计算结果约为200mm,适用于该试验。

 类似资料:
  • 我想计算相机和被识别物体之间的距离。为此我尝试了很多方法,我试图用加速度计找到物体和相机之间的角度,然后用 d=h*tan a H是距离底座的高度,一般为1.4 我试着用get方向方法计算角度。请让我知道我做错了什么。已经超过2天了,我一直在努力满足这个要求。我们已经研究了Android商店上的各种相机应用程序,并试图理解它们的功能,但没有任何结果。

  • 主要内容:摄像机弹簧臂组件在这一节中,我们需要添加两个组件分别是摄像机弹簧臂组件和摄像机组件。 摄像机弹簧臂组件 摄像机弹簧臂组件,可以想象成是我们的手臂和手。手拿着摄像机,当我们想移动摄像机的时候,我们移动的是我们的手臂而不是摄像机。 1) 打开VS编辑器,在PlayingCharacter.h文件添加摄像机弹簧组件和摄像机组件。 2) 在CPP文件中,添加两个头文件和在构造函数中注册这两个组件。 3) 由于我们的骨骼模

  • > 将图像重塑为一对列向量和行向量: 计算度量矩阵G,其条目由公式给出 其中,r是一个从0到20变化的全局参数,d是像素i和像素j之间的距离。E、 例如,如果像素i是(k,l),像素j是(k1,l1),则d=sqrt((k-k1)^2(l-l1)^2) 。像素1将是(1,1),像素2将是(1,2),依此类推。因此,矩阵G的大小将为1638400×1638400。 计算两个图像之间的最终(标量)欧几

  • 我正在尝试获取我网络上的摄像头产生的流。主要问题是这台相机产生的流是H264流。我四处寻找管理这种流的最佳方法,我发现mediacodec是最合适的类。不幸的是,这个API的文档很差,但尽管如此,我还是找到了一些资源,从中获得了这个类的基本信息,并编写了以下代码。 公共类DecodeActivity扩展Activity实现SurfaceHolder.Callback{ (20736):无法实例化类

  • 前面的教程中我们讨论了观察矩阵以及如何使用观察矩阵移动场景(我们向后移动了一点)。OpenGL本身没有摄像机(Camera)的概念,但我们可以通过把场景中的所有物体往相反方向移动的方式来模拟出摄像机,产生一种我们在移动的感觉,而不是场景在移动。 本节我们将会讨论如何在OpenGL中配置一个摄像机,并且将会讨论FPS风格的摄像机,让你能够在3D场景中自由移动。我们也会讨论键盘和鼠标输入,最终完成一个

  • 我知道关于这个话题已经有了一些答案,但我不太清楚如何测量相机和物体之间的距离。 我的目标是: 我用OpenCV通过颜色检测成功地追踪了一个红色的球。现在我试着在红球的中间点一个激光。当红球移动时,激光器应始终跟随红球。我用一个小伺服电机来转动激光。 我在想,如果我能测量物体和相机之间的距离,我就能计算出伺服需要转动的角度。。。 我试图跟踪卡梅伦·洛厄尔·帕尔默的帖子。 我所做的: 我校准了我的Pi