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

相机和物体之间的距离?

洪英豪
2023-03-14

我知道关于这个话题已经有了一些答案,但我不太清楚如何测量相机和物体之间的距离。

我的目标是:

我用OpenCV通过颜色检测成功地追踪了一个红色的球。现在我试着在红球的中间点一个激光。当红球移动时,激光器应始终跟随红球。我用一个小伺服电机来转动激光。

我在想,如果我能测量物体和相机之间的距离,我就能计算出伺服需要转动的角度。。。

我试图跟踪卡梅伦·洛厄尔·帕尔默的帖子。

我所做的:

我校准了我的Pi相机V2

f_x: 463.64
f_y: 463.64
c_x: 319,50
c_y: 239.5

原生分辨率=3280x2464(我想?我不知道怎么找到这个…)<焦距=3.00mm(我想?我不知道怎么找到这个…)

那我应该可以用像素来测量我的物体大小?我不知道怎么做...

有人能帮我吗?

共有2个答案

丁嘉庆
2023-03-14

我设法算出了距离,但并不准确。

我所做的:

  • 我按照官方教程中的描述校准了相机
  • 我使用相机矩阵和扭曲Coeff1来消除我的图像失真。
  • 正如这里所解释的,我对图像进行阈值化以过滤掉红球。
  • 我用公式计算了相机和红球之间的距离:

距离=聚焦长度(单位:mm*(真实对象宽度单位:mm)/(虚拟对象宽度单位:px)

  • 为了得到虚拟对象的宽度,我在阈值图像周围画了一个轮廓(我使用minEncloSingCircle)。然后我计算了这个轮廓的宽度。
  • 我从函数校准矩阵值中检索了我的焦点长度

结果图像:结果

距离表(运行代码片段):

    <table border="1" style="text-align: center">
    <thead>
      <tr>
        <th>Real Distance (mm)</th>
        <th>Calculated Distance (mm)</th> 
      </tr>
    </thead>
     <tbody>
       <tr>
           <td>100</td> 
           <td>83</td> 
       </tr>
       <tr>
           <td>200</td> 
           <td>174</td> 
       </tr>
       <tr>
           <td>300</td> 
           <td>275</td> 
       </tr>
       <tr>
           <td>400</td> 
           <td>384</td> 
       </tr>
       
     <tbody>   
    </table>
阎丰羽
2023-03-14

你能通过将像素大小与物体(红球)大小联系起来来推断大致的距离吗?回到初等代数,你可以在给定物体和物体之间已知距离的情况下推断远处物体的高度。在这种情况下,你知道的是物体大小、像素大小和焦距。

 类似资料:
  • 问题内容: 我正在使用ARCore和Sceneform进行Android AR项目。我需要把对象 从30米200米远 从用户的摄像头和面临的 视锥剔除 在ARCORE问题,说明这里。 我正在尝试使用此方法设置 投影矩阵 以增加参数 但是我找不到设置渲染投影矩阵的可能性。 这是我的代码: 方法包含注释。因此,我不确定是否应该使用它,并且可以保证它会起作用。 请提出建议,我是否可以通过其他方式做到这一

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

  • 首先,我知道欧几里得距离是什么,以及它在两个向量之间做什么或计算什么。 但我的问题是如何计算两个类对象之间的距离,例如在Java或任何其他OOP语言中。我读了很多关于机器学习的东西,已经使用库等编写了分类器。但我想知道,当我有例如以下对象时,如何计算欧几里德距离: 我已经知道的是(如果我没有错!)我必须将此对象转换为表示属性或“特征”的(n)个向量/数组(在机器学习中称为?) 但我该怎么做呢?这正

  • 问题内容: 我需要测量以字符串形式提供名称的两个地方之间的物理距离。由于有时名称的书写方式略有不同,因此我一直在寻找一个可以帮助我测量差异的库,然后将其与纬度和经度结合起来以选择正确的匹配项。首选语言:Java或PHP。 有什么建议? 问题答案: 看看Levenshtein距离。这是一种测量两个字符串彼此之间有多不同的方法。 希望我能正确理解你的问题;在与“经度”相同的句子中使用“距离”可能会造成

  • 我正在构建一个迷宫游戏,在这里我有一个简单的地图... 直到没有问题,但我的问题是碰撞 这是我的地图: 在这里,我用以下代码自己构建了地图: 此碰撞代码用于右上角矩形 我已经尝试了两种不同类型的碰撞代码,但都不起作用 碰撞码: 在这里,当玩家从左侧击中矩形时,玩家向下移动,当玩家从底部击中矩形时,玩家向左移动。 我用if, else if语句尝试过相同的代码,但仍然不起作用。当玩家点击左侧时,它可

  • 本文向大家介绍顶点之间的距离和偏心距,包括了顶点之间的距离和偏心距的使用技巧和注意事项,需要的朋友参考一下 两个顶点之间的距离 它是顶点U和顶点V之间最短路径中的边数。如果有多个路径连接两个顶点,则最短路径被视为两个顶点之间的距离。 表示法-d(U,V) 从一个顶点到另一顶点可以有任意数量的路径。其中,您只需要选择最短的一个即可。 示例 看一下下图- 在这里,从顶点“ d”到顶点“ e”或简称“