首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从单应性恢复平面

从单应性恢复平面
EN

Stack Overflow用户
提问于 2013-07-23 14:24:15
回答 2查看 2.3K关注 0票数 1

我已经使用openCV通过使用特征并匹配它们来计算与同一平面的视图相关的单应性。有没有办法从这个单应性中恢复平面本身或平面法线?(我正在寻找一个等式,其中H是输入,法线n是输出。)

EN

回答 2

Stack Overflow用户

发布于 2013-07-23 16:52:35

如果有相机的校准,则可以提取平面的法线,但不能提取到平面的距离(即,您获得的变换符合比例),如Wikipedia explains。我不知道有什么实现可以做到这一点,但这里有几篇文章可以解决这个问题(我警告你,这并不简单):Faugeras & Lustman 1988Vargas & Malis 2005

如果平面上的两点之间至少有一个实际距离,则可以恢复变换的实际平移(即到平面的距离)。如果是这种情况,使用OpenCV的最简单方法是首先计算单应性,然后使用2D坐标和真正的3D坐标获得平面上的四个点(如果在平面上有真实的测量,您应该能够获得它们),最后使用PnP。PnP会给你一个真正的转变。

票数 1
EN

Stack Overflow用户

发布于 2014-02-21 15:31:08

校正图像的定义是使两个图像中的核线水平并位于同一行中。从你的描述中,我知道你只是想扭曲平面,使其与相机传感器或图像平面平行。这与整改无关--我更愿意称之为获得鸟瞰视图或俯视视图。

不过,我看到了混乱的根源。图像的校正通常涉及将每个图像与一个单应矩阵相乘。在你的例子中,传感器平面b中的每个点: Xb = Hab * Xa = (Hb * Ha^-1) * Xa,其中Ha是从世界上的平面到传感器a的单应性;Ha和固有的相机矩阵将给你一个平面方向,但我看不到一种简单的方法将Hab分解为Ha和Hb。

一个经典的(也是困难的)方法是找到一个基本矩阵,从它恢复基本矩阵,将基本矩阵分解为相机旋转和平移(按比例),校正两个图像,执行密集立体,然后将平面方程拟合到重建的三维点中。

如果你对地平面感兴趣,并且你在操作嵌入式设备,你甚至不需要两帧--从一张照片,相机从地面(H)的仰角(H)和陀螺仪(或方向矢量)读数可以很容易地恢复俯视图。下面的简单图表解释了2D情况下的过程:第一张图片显示了如何将Z(深度)坐标恢复到地平面上的每个点;第二张图片显示了俯视图的图形,纵轴是z,横轴x=( img.col -w/2)*Z/img.col;这里的焦距是图像列,w图像宽度,焦点是相机焦距。请注意,在鸟瞰视图中,相机截体看起来像梯形。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17802848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档