【问题标题】:Angle of object relative to the camera and video? Video and camera output different物体相对于相机和视频的角度?视频和摄像头输出不同
【发布时间】:2015-02-11 14:35:46
【问题描述】:

我想知道我是否有关于这个的想法,我已经对我的相机进行了校准,现在我想只在 x 轴水平方向上获得检测到的物体相对于相机的角度。 我在想我可以在图像上以已知的像素值放置一些网格线,并匹配那些已知真实世界距离的网格线,并以这种方式计算每个像素的角度,知道三角形的距离。从图像中心 0 度开始,向右移动 +X 度,向左移动 -X 像素。

假设这是一个正确的方法,由于某种原因,我正在使用的视频是以 704x576 像素录制的,但是当我将相机插入计算机以使用它时,它是 640x480 像素,并且是同一台相机录音。我认为这会在一定程度上影响我的结果,包括校准以及我想要的每像素测量的角度。我正在使用 C++ 中的 OpenCV,我想知道当我将相机调到 704x576 时是否有一种方法/功能可以调整屏幕尺寸,如果我在这个尺寸下进行测量,我可以得到每个像素的准确角度测量?还是我需要做其他事情?

我仍在研究相机几何和 openCV 的方法,如果有任何帮助,我将不胜感激,谢谢。

【问题讨论】:

    标签: c++ opencv camera


    【解决方案1】:

    这可能比您想象的要容易。假设您的相机具有 60.0 度的水平视野 (FOV)。比沿 X 轴的每个像素只有 60.0/640 度。您可以通过考虑一个边由焦距矢量和一半屏幕宽度形成的直角三角形来轻松计算 FOV:

    FOV = 2*atan(640/2, focus) 其中焦距以像素为单位

    例如,对于焦点=500 像素 FOV = 2*atan(640/2, 500) = 1.14rad = 65.2deg

    要记住的一点是,焦距会随屏幕分辨率成比例变化。例如,如果您根据 640x320 图像计算出 focus=500,那么对于 320x160 图像来说,focus=250。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-17
      • 1970-01-01
      • 2014-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多