知道深度,从米到像素的转换

时间:2016-05-09 14:31:28

标签: c++ opencv image-processing pixels

我在图像平面上创建感兴趣区域时遇到问题。 对于地平面中的一组点,项目固定大小的窗口(例如1x2米),其相对于其深度适当地缩放。 为此,我使用一个函数,该函数使用从空间的3D点到2D图像坐标的投影矩阵。所以基本上我只是通过投影

来创建Roi
 point1 << x3D-Width/2,y3D,Height,1; // with respect to the laser ref frame
 point2 << x3D+Width/2,y3D,optimalBottom,1; // with respect to the laser ref frame

这是矩形的两个极值点,我们可以假设optimalBottom = 0.0

现在的问题是,如果我使用从鱼眼摄像机的参数计算的投影,这将导致窗户没有正确定位到整流图像上(我需要使用校正后的图像)。
所以我想重新映射(使用opencv remap)来重新映射极值坐标,但由于鱼眼对图像的影响,这会导致失真。例如,矩形的位置是好的,但是在图像的侧面,这种矩形的宽度和高度完全失真。
我想到的只是重新映射生成矩形的原始点,然后添加直接以像素表示的宽度和高度的固定值。

问题是:

  

了解矩形的尺寸及其深度,是否可以获得从米到像素的转换?

例如,我希望以像素为单位使用正确的值 center(projected, in pixels)-width/2(fixed, in pixels)
center(projected, in pixels)+width/2(fixed, in pixels)

找到矩形的总宽度,但显然这样的宽度不能固定,但必须取决于矩形的深度/距离。 也许这是一个愚蠢的问题,但我无法找到解决方法。
谢谢

0 个答案:

没有答案