从真实距离测量得到的像素坐标

时间:2017-07-29 05:33:58

标签: algorithm matlab image-processing computer-vision

在我的程序中(使用MATLAB),我指定(通过拖动)行人车道作为我感兴趣的区域(ROI),坐标为[7,178,620,190]( xmin,ymin,width , height 分别使用 getrect,roipoly insertshape 函数。请参阅下图。

拍摄快照的视频分辨率为640x480像素(480p) enter image description here

通过鼠标拖动定义真实世界空间作为我的投资回报率是野蛮的。这就是必须以数学方式推导出ROI坐标的原因。

我正在使用的是从视频捕捉网站使用真实世界的测量值,并使用相机定位的毕达哥拉斯定理:

enter image description here

如何使用真实世界的测量值获得等效的像素坐标和参数?

1 个答案:

答案 0 :(得分:1)

我会尝试将您的问题分成两个较小的问题。

  

A)如何获得有趣的等效像素坐标   点? (实际问题)

您的程序可以检索/侦听您在“现实世界”中定位的功能/标记。有趣的一点。输出是像素中的坐标。这可以很容易地完成(例如考虑QR码)

  

B)3D空间中1点与之间的分析关系是什么?   它在图像中的像素坐标? (理论问题)

这是基于针孔相机模型的投影方程。 X,Y,Z 3D坐标与x,y像素坐标相关 projection equation

很酷,但必须解释一些细节(并且会有任何"自动短配方")

  1. s代表比例因子。由于透视,图像中的单个像素可以是无限不同点的投影。在你的照片中,包含一块汽车的像素(当汽车存在时)将是包含汽车下方的一条街道的相同像素(当汽车通过时)。 因此,从像素坐标开始没有单一的关系

  2. 左侧的矩阵涉及相机参数(焦距等),称为内部参数。必须知道它们可以建立3D坐标和像素坐标之间的关系

  3. 右边的矩阵似乎是微不足道的,是表示旋转的单位矩阵和表示平移的零列数组的组合。像T = [R|t]这样的东西。 哪个轮换,哪个翻译?您必须考虑每组坐标都在其自己的参考系统中隐式表达。因此,您必须确定测量参考系统与摄像机参考系统之间的关系:不仅要使用欧几里德几何体检索3D空间中摄像机的位置,还要方向< / em>相机(角度)。