栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python计算机视觉编程

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python计算机视觉编程

基于SIFT算法的全景拼接
  • 前言
  • 1.单应性变换
  • 2.RANSAC算法(待续)
  • 3.代码实现(待续)

前言

什么是全景拼接?简单来说就是将两幅或多幅具有重叠区域的图像,合并成一张大图

如图所示,7张不同的图像最后拼接成一幅大图,那么问题很明显,如何拼接呢?

1.单应性变换

如果是最简单图像拼接,很明显,我们只需要对其进行平移,将重叠区域叠加,很轻松的就能得到一幅拼接图像。但实际上两幅图像之间有很多种关系,包括但不限于平移,旋转,尺度变换,仿射,透视映射,桶状映射等等。


左边的图像由右边两幅图像拼接而成,很明显,右边两幅图像之间不仅有平移,还有旋转,还有拉伸等等,我们将右边的两幅图像转换成我们想要的平面图像,这个过程就是单应性变换。

上面这个表格显示了不同变换方式所带的未知参数个数,我们以平移为例子,两幅具有平移关系的图像,我们如何拼接呢?

如图所示,两幅图像之间的映射关系如何得到呢,很明显,理论上来说如果匹配的特征点完全正确,我们只需要一个匹配对就可以得到映射关系,比如这对匹配对为(25,25)和(50,50),那么右图先与左图重叠,再将右图往左移动25像素点,然后再向下移动25个像素点,就可以将两幅图像拼接了。
当然,完全正确的匹配点一般只存在于理论当中,所以我们需要一个误差函数来判断每个映射关系的好坏,通过这个误差函数来选择最合适的映射关系。而这个误差函数采用的方法就是我们熟悉的最小二乘法。这里就不对最小二乘法展开讲了,有兴趣的可以自行百度搜索,很多大佬讲的都很清晰。
而对于单应性变换,我们有以下公式

很显然,8个位置参数,我们需要4个匹配特征才能得出一种映射关系,如果将每种可能性都进行计算,所需要的资源量是非常巨大的,所以我们使用RANSAC(RAndom SAmple Consensus)算法来对其进行优化求解。

2.RANSAC算法(待续) 3.代码实现(待续)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/840318.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号