单应性矩阵

举报
风吹稻花香 发表于 2021/06/05 00:11:34 2021/06/05
【摘要】 单应性: 在计算机视觉中:对单应性最感兴趣的部分只是其他意义的一个子集。平面的单应性被定义为从一个平面到另一个平面的投影映射。比如,一个二维平面上的点映射到摄像机成像仪上的映射就是平面单应性的例子。 在一个三维空间中的平面,投影到多个影像之间存在一特定关系,此关系称为 planar homography 单应性(homography)变换的推导 ...
单应性:
在计算机视觉中:对单应性最感兴趣的部分只是其他意义的一个子集。平面的单应性被定义为从一个平面到另一个平面的投影映射。比如,一个二维平面上的点映射到摄像机成像仪上的映射就是平面单应性的例子。
在一个三维空间中的平面,投影到多个影像之间存在一特定关系,此关系称为 planar homography

单应性(homography)变换的推导

矩阵的一个重要作用是将空间中的点变换到另一个空间中。这个作用在国内的《线性代数》教学中基本没有介绍。要能形像地理解这一作用,比较直观的方法就是图像变换,图像变换的方法很多,单应性变换是其中一种方法,单应性变换会涉及到单应性矩阵。单应性变换的目标是通过给定的几个点(通常是4对点)来得到单应性矩阵。下面单应性矩阵的推导过程。


矩阵会将一幅图像上的一个点的坐标映射成另一幅图像上的点的坐标,也就是说,我们已知,它们是在同一平面上。 则有下面的公式:

即:

由上面这个公式中的 可得到下面两个等式





对于方程 ,可写成一个矩阵与一个向量相乘,即:

其中, ,是一个9维的列向量。若令:

可以记为

这里的 。这只是1对点所得到的矩阵 ,若有4对点,则得到的矩阵 。如何求解向量 呢?方法很简单,真接对 进行SVD分解,即

然后取 的最后一列出来作为求解 。因为矩阵 是行满秩,即只有一个自由度。
具体实现时,先要得到两幅图,然后在两幅图之间找到4对点的坐标,由此得到矩阵

,然后在matlab中可以这样实现:

[U,S,V]=svd(A);

h=V(:,9);

H= reshape(h,3,3);

由单应性矩阵可以得到仿射变换,还可以在单应性矩阵上做图像拼接。


文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/54766767

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。