Math 我可以使用单应性将相机图像点投影到地面(2D平面)吗?

Math 我可以使用单应性将相机图像点投影到地面(2D平面)吗?,math,camera,computer-vision,homography,fieldofview,Math,Camera,Computer Vision,Homography,Fieldofview,我的问题很简单,但我很难正确地解决它 我有一个面向地面的摄像头,我知道拍摄的所有参数。因此,通过一些数学运算,我能够计算出定义摄像机视野的4个点(每个图像角落地面上的坐标) 现在,从图像像素的坐标(x,y),我想知道它投影在地面上的真实坐标 我认为单应性是一种可行的方法,但我读到“单应性将从一台摄像机看到的平面映射到从另一台摄像机看到的同一平面”,这是一个稍微不同的问题 请问我应该用什么 编辑:以下是一个示例 鉴于此图像: 我知道拍摄照片的相机的所有信息(高度、视角、方向),因此我可以计算出

我的问题很简单,但我很难正确地解决它

我有一个面向地面的摄像头,我知道拍摄的所有参数。因此,通过一些数学运算,我能够计算出定义摄像机视野的4个点(每个图像角落地面上的坐标)

现在,从图像像素的坐标
(x,y)
,我想知道它投影在地面上的真实坐标

我认为单应性是一种可行的方法,但我读到“单应性将从一台摄像机看到的平面映射到从另一台摄像机看到的同一平面”,这是一个稍微不同的问题

请问我应该用什么


编辑:以下是一个示例

鉴于此图像:

我知道拍摄照片的相机的所有信息(高度、视角、方向),因此我可以计算出构成地面视野的四个角的坐标,例如(相对于相机位置的厘米,从左上角顺时针方向):
(-300500)
(300500)
(100,50)
(-100,50)

知道草叶图像上的坐标是
(1750480)
,我怎么知道它在地面上的实际坐标呢?

通过“了解”相机的一切,你的意思是你有相机的FOV,相对于地平面的旋转和平移?那就很简单了,对吗


写入摄像机矩阵K=[[f,0,w/2],[0,f,h/2],[0,0,1]]。设R和t分别为3x3旋转矩阵和从摄像机到地面的3x1平移。光线上穿过给定像素p=[u,v,1]的点具有摄像机坐标R=inv(K)*p.用世界坐标表示为R*R+t,与地平面相交,就完成了。

可以看到样本图像吗?看来单应仍然有用,因为平面始终是相同的,即地面。@UJIN我用一个例子更新了我的问题。应该可以在“预计的"飞机,但我现在不能绕着它转。我会在有空闲时间的时候尽快尝试。我的意思是,一个坐标系中有4个点,另一个坐标系中有4个点。应该可以使用8点算法,找到一个单应,然后将点从照片投影到实际地面。但在这一点上,我可能完全错了:/@UJIN t谢谢你的时间!我想我会用一个简单的单应形式。@Francesco Callari你能详细解释一下为什么要减去inv(Q)[0 0 1]?@Delgan我不确定你是否理解为什么我们用
inv(Q)[0,0,0,1]
?我知道光线会通过
inv(Q)[r,1]
inv 0,0,1]
但我不知道为什么要减去这些量。我真的很想澄清一下,因为我真的在为一个类似的问题苦苦挣扎。@Delgan还有,你如何估计地平面的方程式?嘿@Luca!对不起,我很想帮你,但事实上,我从来没有花时间来正确实施@Francesco的方法解决方案…:/在我的例子中,地平面方程只是
z=0