Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenCV-投影、单应矩阵和bird';海景_Opencv_Projection_Homography - Fatal编程技术网

OpenCV-投影、单应矩阵和bird';海景

OpenCV-投影、单应矩阵和bird';海景,opencv,projection,homography,Opencv,Projection,Homography,我想得到鸟瞰图的单应矩阵,我知道摄像机的投影矩阵。他们之间有什么关系吗 谢谢。投影矩阵定义为相机固有矩阵(如焦距、主点等)和外在矩阵(旋转和平移)的乘积。问题是你的旋转和平移是什么?例如,我可以想象另一个摄影机或3D对象,您可以对其进行旋转和平移。否则你的投影就是一个内在的矩阵 首先想一想获得鸟瞰图需要知道的信息:你至少需要知道你的相机是如何定位于w.r.t地面的。如果还知道摄影机高程,则可以创建公制重建。但是,既然你提到了单应性,我假设你考虑了一个平面的鸟瞰图,因为单应性把两个平面上的点映射起

我想得到鸟瞰图的单应矩阵,我知道摄像机的投影矩阵。他们之间有什么关系吗


谢谢。

投影矩阵定义为相机固有矩阵(如焦距、主点等)和外在矩阵(旋转和平移)的乘积。问题是你的旋转和平移是什么?例如,我可以想象另一个摄影机或3D对象,您可以对其进行旋转和平移。否则你的投影就是一个内在的矩阵

首先想一想获得鸟瞰图需要知道的信息:你至少需要知道你的相机是如何定位于w.r.t地面的。如果还知道摄影机高程,则可以创建公制重建。但是,既然你提到了单应性,我假设你考虑了一个平面的鸟瞰图,因为单应性把两个平面上的点映射起来,在你的例子中,平地上的点和平面传感器上的点。

我们考虑针孔相机方程。它基本上是这样说的 [u,v,1]T~A*[R | T][x,y,z,1]T,其中A是相机固有矩阵。现在,由于您处理的是地面平面,因此可以通过设置z=0将新坐标系与其对齐;R | t是从该坐标系到相机对齐系统的旋转和平移矩阵

接下来,请注意,R | t是一个3x4矩阵,由于z=0,它失去了一个维度;它变成3x3或单应,现在等于H=A*R'| t;好的,我们所做的只是证明地面和传感器之间存在单应映射

现在,您需要另一种单应性,这种单应性发生在纯相机旋转期间,并在旋转/缩放前后在传感器上的点之间进行缩放;也就是说,您希望向下旋转摄影机并可能缩小。再一次,用针孔相机方程来思考:最初你有H1=a(现在我把R | T当作无关紧要的东西扔掉了),然后你旋转相机,你有H2=AR;换句话说,H1是您现在制作图像的方式,H2是您希望图像的样子。
二者之间的关系是你想要找到的,H12,它也是一个单应性,因为单应性是一个变换族(使用这个简单的启发式:在一个族中发生的事情留在族中)。由于同一个表面可以生成H1或H2图像,我们可以通过撤消H1(回到地平面)和应用H2(从地面到传感器鸟瞰视图)来组装H12;在某种程度上,这类似于向量运算,您只需遵守矩阵应用程序从右到左的顺序:
H12=H2*H1-1=A*R*A-1=P*A-1,我们用表达式替换H1、H2,最后替换投影矩阵(如果您有)

这是您的答案,如果旋转R未知,则可以从相机方向w.R.t.地面猜出,或使用opeCV库计算。最后,当我在手机上这样做时,我只是使用它的加速计读数作为一个很好的近似值,因为当手机没有加速时,读数代表一个重力矢量,它给出了水平地面的旋转w.r.t


当您将鸟瞰图绘制为图像时,您会注意到其边界从矩形变为某种梯形(由于摄影机平截头体形状),并且在远处有一些孔(由于采样率不足)。你可以用

在孔内插值,你能再公式化一点吗?所以,我使用autonomous car,我想得到鸟瞰图的单应矩阵,有很多方法,但我有摄像机的投影矩阵,我想用这个,得到单应矩阵,但我不知道该怎么做,我该怎么理解翻译部分呢?使用H12扭曲后的图像超出查看区域,我需要对其进行翻译。