图像拼接——APAP算法[通俗易懂]

图像拼接——APAP算法[通俗易懂]一、图像拼接技术1、基本介绍图像拼接是将同一场景的多个重叠图像拼接成较大的图像的一种方法,在医学成像、计算机视觉、卫星数据、军事目标自动识别等领域具有重要意义。图像拼接的输出是两个输入图像的并集。通常用到五个步骤:二、APAP算法1、…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1.图像拼接技术

1.1 基本介绍

*图像拼接是将同一场景的多个重叠图像拼接成较大的图像的一种方法,在医学成像、计算机视觉、卫星数据、军事目标自动识别等领域具有重要意义。图像拼接的输出是两个输入图像的并集。
*图像配准(image alignment)和图像融合是图像拼接的两个关键技术。图像配准是图像融合的基础,而且图像配准算法的计算量一般非常大,因此图像拼接技术的发展很大程度上取决于图像配准技术的创新。早期的图像配准技术主要采用点匹配法,这类方法速度慢、精度低,而且常常需要人工选取初始匹配点,无法适应大数据量图像的融合。图像拼接的方法很多,不同的算法步骤会有一定差异,但大致的过程是相同的。
*图像拼接通常用到五个步骤:
1、根据给定图像 / 集,实现特征匹配
2、通过匹配特征计算图像之间的变换结构
3、利用图像变换结构,实现图像映射
4、针对叠加后的图像,采用APAP之类的算法,对齐特征点
5、通过图割方法,自动选取拼接缝

2.APAP算法

2.1算法流程:

1.SIFT得到两幅图像的匹配点对
2.通过RANSAC剔除外点,得到N对内点
3.利用DLT和SVD计算全局单应性
4.将源图划分网格,取网格中心点,计算每个中心点和源图上内点之间的欧式距离和权重
5.将权重放到DLT算法的A矩阵中,构建成新的W*A矩阵,重新SVD分解,自然就得到了当前网格的局部单应性矩阵
6.遍历每个网格,利用局部单应性矩阵映射到全景画布上,就得到了APAP变换后的源图
7.最后就是进行拼接线的加权融合

3.实验过程及分析

3.1 情景一:拼接视差变化小

*数据集:在这里插入图片描述
*特征匹配结果:
在这里插入图片描述
在这里插入图片描述
*拼接结果:
在这里插入图片描述
*实验分析:

  • 这组实验的数据集是在固定点位下拍摄的,距离,角度,光线大致相同(靠窗一侧光线较强),这组图片的景物和纹理相对单一,视察变化仅在桌子边沿部分。
  • 从拼接结果图中可以看到桌子边缘被完美的衔接在一起,实现了我们想要的全景拼接效果,这得益于SIFT 特征匹配点的精准匹配和RANSAC算法适当删除不匹配点的功劳,再加上后期的图像融合,才让我们看到这个效果。
  • 不足的是右侧有一条明显的拼接缝隙,左右两边的光线差异很明显,这表明算法对光线变化不做检测处理,仅对图中角点进行特征匹配,为了让全景拼接技术更出色,可以考虑改进算法,让他检测到光线的变化,这样让有光线渐变的场景拼接效果更惊艳。
  • 左下角有一条不规则的黑色条状物体,这部分成像应该是三张数据源在拼接时进行角度调整形成的(因为手持移动手机拍摄,所以有一定的角度差异)。

3.2 情景二:拼接视差变化大

*数据集:
在这里插入图片描述
*匹配结果:

在这里插入图片描述在这里插入图片描述

*拼接结果:
在这里插入图片描述
*分析:

  • 这组数据集是在切换拍摄角度,旋转角度和一定距离差异的情况下拍的,由于手机摄像头成像的原因,第二张照片色调会比较暗。
  • 从匹配结果来看,算法检测到的匹配点并不多,但从保留下的匹配点来看,准确度是极高的,凭自己肉眼判断,没发现错误匹配点,但这势必会影响到图片拼接的效果。
  • 从拼接结果来看,左侧窗户下沿和右侧的窗帘拼接缝隙很明显,并没有成功连接起来,一是匹配点不够多,两张图片对应点检测到的很少,单靠少数的匹配点很难得到成功的拼接效果;二是拍摄角度和距离有一定变化;两张图窗户的大小不同,算法是对图像进行切割连接,并不对图像进行大小改变的处理,所以拍摄角度和距离会对拼接效果产生影响。

4.总结实验

1.算法没办法检测光线的变化,拍摄角度,远近距离和特征点对算法结果都有影响;
2.Apap虽然能够较好地完成配准,但非常依赖于特征点对。若图像高频信息较少,特征点对过少,配准将完全失效,并且对大尺度的图像进行配准,其效果也不是很好,一切都决定于特征点对的数量。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190713.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • IntelliJ IDEA 下载安装配置教程(完整版)[通俗易懂]

    IntelliJ IDEA 下载安装配置教程(完整版)[通俗易懂]IntelliJIDEA下载安装教程参考:https://blog.csdn.net/HD_hjx/article/details/89931754number_one:官网下载IntelliJIDEAnumber_two:开始安装的旅途吧!

    2022年6月13日
    54
  • Spring boot 使用Jasypt加密用户名密码

    Spring boot 使用Jasypt加密用户名密码

    2021年5月15日
    133
  • java课程设计成绩管理系统_Java课程设计–学生成绩管理系统

    java课程设计成绩管理系统_Java课程设计–学生成绩管理系统一、团队名称:##团队成员林艺薇201721123032网络1712黄毓颖201721123033网络1712唐川201721123034网络1712梁才玉201721123038网络1712##任务分配#三、项目git提交记录截图#四、项目功能架构图与主要功能流程图##思维导图##成绩管理流程图#五、项目运行截图##主界面##选择用户##教师登陆界面##…

    2022年7月9日
    20
  • C语言学生成绩管理系统设计 《C语言程序设计》实训报告[通俗易懂]

    C语言学生成绩管理系统设计 《C语言程序设计》实训报告[通俗易懂]一、课程设计题目《学生成绩管理系统设计》二、实训目的(1)掌握结构化程序设计的基本方法,基本掌握面向对象程序设计的基本思路和方法。(2)掌握C++的基本概念和基础知识。(3)通过训练能够读懂较为复杂的C++语言源程序并具备基本C++语言程序设计的能力。(4)通过实训,培养自己编写、调试、分析程序的能力。(5)培养自己独立解决问题,查找资料的能力。同学之间相互帮助,相互交流,相互合作的团队精神。(6)培养自己良好的学习兴趣,独立的编程风格。(7)通过实训检查自己学习上的

    2022年6月20日
    32
  • 算术几何平均matlab,算术-几何平均数——高斯的发现

    算术几何平均matlab,算术-几何平均数——高斯的发现“算术-几何平均数”既不是算术平均数,也不是几何平均数,由素有“数学王子”之称的德国数学家高斯首先发现和研究。算术-几何平均数,当然与“算术平均数”和“几何平均数”这两个概念有很深的关系。我们知道,但凡一个数学概念或定理,哪怕再简单不过,只要和高斯扯上关系,那就一定不简单了。带着耐心,我们来看看高斯关于算术-几何平均数的研究。预备知识对于两个正实数a和b(不妨设0我们有基本不等式,等号当且仅当a=…

    2025年6月7日
    3
  • 安卓ExpandableListView的详细使用教程(附代码解析过程)[通俗易懂]

    安卓ExpandableListView的详细使用教程(附代码解析过程)[通俗易懂]ExpandableListView又称可扩展的ListView,它可以实现点击父项展开子项的效果,本文实现了一个比较精美的ExpandableListView。

    2022年6月30日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号