【问题标题】:Object Interpolation by Distance in an Image在图像中按距离进行对象插值
【发布时间】:2010-08-21 19:28:53
【问题描述】:

我正在计算图像中的对象。我希望执行线性插值,我知道我的对象在近处和远处的像素大小以及这两个对象在图像中的位置。图像底部的图像较大,因为它们靠近拍摄它们的相机。

要分析的图像与这里的这个问题相同...... link text

我意识到线性插值只能在一个平面上工作,从上到下,所以关于如何正确执行它的想法会很好。这是一篇硕士论文,我已经完成了“硬”位 - 图像分类,数据收集,但是我刚刚在 Java(当前使用)和 R(现在仅用于统计)之间遇到了一堵心理砖墙,任何帮助将不胜感激!

【问题讨论】:

    标签: java image-processing photogrammetry


    【解决方案1】:

    所以我会使用 3d 投影方程并逆向计算以找到场景中某个对象的 x、y、z。因此,给定物体的大小、相机的焦距,您可以计算出画面中物体的 x、y、z。

    我会对相机做一些假设(没有旋转,没有平移,相机位于 z 轴的 0、0、0 处)。

    image.x = model.x * camera.focalLength / model.z
    image.y = model.y * camera.focalLength / model.z
    

    在你周围翻转它们会得到:

    model.x = image.x * model.z / camera.focalLength;
    model.y = image.y * model.z / camera.focalLength;
    

    这假设您知道到您认为对象位于相机的点的距离(即 model.z)。同样,如果你想计算物体到相机的距离,你可以这样计算 model.z:

    model.z = model.x * camera.focalLength / image.x
    model.z = model.y * camera.focalLength / image.y
    

    我想技巧是弄清楚在这种情况下你应该为model.x和model.y使用什么。获取对象的宽度或对象的高度,您可以得出对象中的恒定宽度与场景中对象在距离变化时的宽度之间的关系。

    model.z = model.width * camera.focalLength / image.width;
    model.z = model.height * camera.focalLength / image.height;
    

    几天来一直坐在那个答案上,所以我检查了我的事实。但这与另一篇文章大致一致。

    【讨论】:

      【解决方案2】:

      Homography 是一种数学方法,可将距相机的物体距离转换为透视投影产生的尺寸变化。

      基本上,在相机图像上显示的对象大小与对象的实际大小除以对象与相机的距离成正比。

      假设有两个对象 A 和 B,它们具有相同的实际大小。 A 在距离 DA 处,B 在距离 DB 处。它们在相机图像中的大小为 HA 和 HB

      对于与 A 和 B 相同的真实世界大小的对象 C,它位于距离 (1-α)DA + (α)DB ,其在相机图像上的大小由下式给出:

      【讨论】:

      • 你能说完吗?这似乎正是我想要的!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-05
      • 2015-08-06
      相关资源
      最近更新 更多