1

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

要分析的图像与此处的此问题相同... 链接文本

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

4

2 回答 2

0

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

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

假设有两个对象 A 和 B,它们具有相同的真实世界大小。A 在距离 D A处,B 在距离 D B处。它们出现在相机图像中的大小是 H A和 H B

对于与 A 和 B 具有相同实际大小的对象 C,即位于距离 (1-α)D A + (α)D B处,其在相机图像上的大小由下式给出:

于 2010-08-21T20:15:54.063 回答
0

所以我会使用 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;

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

于 2010-08-24T01:12:21.473 回答