全景图拼接

本文介绍了全景图像拼接的基本流程,重点讲述了RANSAC算法在估计单应性矩阵中的应用,通过匹配图像特征,计算单应矩阵,并进行图像扭曲,最终完成全景图的拼接。
摘要由CSDN通过智能技术生成

目录

一.图像拼接基本流程

二.RANSAC(随机一致性采样)

2.1 RANSAC基本思想:数据中包含正确的点和噪声点,合理的模型应该能够在描述正确数据点的同时摒弃噪声点

2.2 RANSAC基本流程:

2.3 单应性矩阵

2.4 拼接图象

三.全景图像

3.1  提取图像的特征和关键点,匹配图像间的关键点

3.2 估计单应性矩阵

3.3 扭曲图像

四.实验结果

4.2 全景图像拼接

4.3 图像数据集


一.图像拼接基本流程

  1. 检测并提取图像的特征和关键点
  2. 匹配两个图像之间的描述符
  3. 使用RANSAC算法使用我们匹配的特征向量估计单应矩阵
  4. 拼接图像

前两个步骤是运用SIFT局部特征算子检测图像中的特征和关键点。步骤三:利用图像的重叠部分连接所有图片之后就可以形成一个基本的全景图了。匹配图片最常用的方式是采用RANSAC方法

二.RANSAC(随机一致性采样)

2.1 RANSAC基本思想:数据中包含正确的点和噪声点,合理的模型应该能够在描述正确数据点的同时摒弃噪声点

2.2 RANSAC基本流程

  1. 随机选择4对匹配特征(条件:至少3个点不能再同一条直线上)
  2. 根据DLT(直线线性变换)算法计算单应性矩阵H
  3. 对所有匹配点计算映射误差
  4. 确定误差阈值,确定inliers
  5. 针对最大inliers集合,重新计算单应性矩阵H

2.3 单应性矩阵

    单应性矩阵可以有两幅图像或平面中对应点对计算出来。每个对应点对可以写出两个方程,分别对应于x和y坐标。因此,计算单应性矩阵H需要4个对应点对

其中A是一个具有对应点对二倍数量行数的矩阵。将这些对应点对方程的系数堆叠到一个矩阵中,我们可以用SVD(奇异值分解)算法找到H的最小二乘解

压缩包中包含的具体内容: 对给定数据中的6个不同场景图像,进行全景图拼接操作,具体要求如下: (1) 寻找关键点,获取关键点的位置和尺度信息(DoG检测子已由KeypointDetect文件夹中的detect_features_DoG.m文件实现;请参照该算子,自行编写程序实现Harris-Laplacian检测子)。 (2) 在每一幅图像中,对每个关键点提取待拼接图像的SIFT描述子(编辑SIFTDescriptor.m文件实现该操作,运行EvaluateSIFTDescriptor.m文件检查实现结果)。 (3) 比较来自两幅不同图像的SIFT描述子,寻找匹配关键点(编辑SIFTSimpleMatcher.m文件计算两幅图像SIFT描述子间的Euclidean距离,实现该操作,运行EvaluateSIFTMatcher.m文件检查实现结果)。 (4) 基于图像中的匹配关键点,对两幅图像进行配准。请分别采用最小二乘方法(编辑ComputeAffineMatrix.m文件实现该操作,运行EvaluateAffineMatrix.m文件检查实现结果)和RANSAC方法估计两幅图像间的变换矩阵(编辑RANSACFit.m 文件中的ComputeError()函数实现该操作,运行TransformationTester.m文件检查实现结果)。 (5) 基于变换矩阵,对其中一幅图像进行变换处理,将其与另一幅图像进行拼接。 (6) 对同一场景的多幅图像进行上述操作,实现场景的全景图拼接(编辑MultipleStitch.m文件中的makeTransformToReferenceFrame函数实现该操作)。可以运行StitchTester.m查看拼接结果。 (7) 请比较DoG检测子和Harris-Laplacian检测子的实验结果。图像拼接的效果对实验数据中的几个场景效果不同,请分析原因。 已经实现这些功能,并且编译运行均不报错!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值