在我的程序中(使用MATLAB),我指定(通过拖动)行人车道作为我感兴趣的区域(ROI),坐标为[7,178,620,190]( xmin,ymin,width ,和 height 分别使用 getrect,roipoly 和 insertshape 函数。请参阅下图。
通过鼠标拖动定义真实世界空间作为我的投资回报率是野蛮的。这就是必须以数学方式推导出ROI坐标的原因。
我正在使用的是从视频捕捉网站使用真实世界的测量值,并使用相机定位的毕达哥拉斯定理:
如何使用真实世界的测量值获得等效的像素坐标和参数?
答案 0 :(得分:1)
我会尝试将您的问题分成两个较小的问题。
A)如何获得有趣的等效像素坐标 点? (实际问题)
您的程序可以检索/侦听您在“现实世界”中定位的功能/标记。有趣的一点。输出是像素中的坐标。这可以很容易地完成(例如考虑QR码)
B)3D空间中1点与之间的分析关系是什么? 它在图像中的像素坐标? (理论问题)
这是基于针孔相机模型的投影方程。 X,Y,Z
3D坐标与x,y
像素坐标相关
很酷,但必须解释一些细节(并且会有任何"自动短配方")
s
代表比例因子。由于透视,图像中的单个像素可以是无限不同点的投影。在你的照片中,包含一块汽车的像素(当汽车存在时)将是包含汽车下方的一条街道的相同像素(当汽车通过时)。
因此,从像素坐标开始没有单一的关系
左侧的矩阵涉及相机参数(焦距等),称为内部参数。必须知道它们可以建立3D坐标和像素坐标之间的关系
右边的矩阵似乎是微不足道的,是表示旋转的单位矩阵和表示平移的零列数组的组合。像T = [R|t]
这样的东西。
哪个轮换,哪个翻译?您必须考虑每组坐标都在其自己的参考系统中隐式表达。因此,您必须确定测量参考系统与摄像机参考系统之间的关系:不仅要使用欧几里德几何体检索3D空间中摄像机的位置,还要方向< / em>相机(角度)。