文章目录

  • 前言
  • 一、拼接效果
  • 二、算法介绍
    • 1.拼接算法简介
      • 1.1 基于区域相关拼接算法
      • 1.2 基于特征相关拼接算法
      • 1.3 拼接算法的基本流程
    • 2. 拼接算法原理
      • 2.1 第一种:特征匹配
      • 2. 2 第二种:计算图像之间的变换结构
      • 2. 3 第三种:通过graph cut寻找拼接缝
  • 最后

前言

图像拼接在实际的应用场景很广,比如无人机航拍,遥感图像等等,图像拼接是进一步做图像理解基础步骤,拼接效果的好坏直接影响接下来的工作,所以一个好的图像拼接算法非常重要。

再举一个身边的例子吧,你用你的手机对某一场景拍照,但是你没有办法一次将所有你要拍的景物全部拍下来,所以你对该场景从左往右依次拍了好几张图,来把你要拍的所有景物记录下来。那么我们能不能把这些图像拼接成一个大图呢?

这是一个非常好的毕业设计研究课题,学长非常推荐!

毕设帮助,开题指导,资料分享,疑问解答(见文末)


一、拼接效果

依照惯例, 废话不多说,先上拼接效果

拼接左图:

拼接右图:


拼接效果:

拼接前:

拼接后:

二、算法介绍

1.拼接算法简介

图像拼接技术就是将数张有重叠部分的图像(可能是不同时间、不同视角或者不同传感器获得的)拼成一幅无缝的全景图或高分辨率图像的技术。在医学成像、计算机视觉、卫星数据、军事目标自动识别等领域具有重要意义。

图像拼接目前有很多算法,图像拼接的质量,主要依赖于图像的配准程度,因此通过不同的图像匹配方式将算法分为以下两种:

1.1 基于区域相关拼接算法

该算法比较传统和普遍,从待拼接图像的灰度值出发,对待配准图像中一块区域与参考图像中的相同尺寸的区域使用最小二乘法或者其它数学方法计算其灰度值的差异(1.通过累加各点灰度的差值,2.计算两块区域的对应像素点灰度值的相关系数,相关系数越大,则两块图像的匹配程度越高,3.两者中计算相关系数的效果更好)。对此差异比较后来判断待拼接图像重叠区域的相似程度,由此得到待拼接图像重叠区域的范围和位置,从而实现图像拼接。
也可以通过FFT 变换将图像由时域变换到频域,然后再进行配准。对位移量比较大的图像,可以先校正图像的旋转,然后建立两幅图像之间的映射关系。

1.2 基于特征相关拼接算法

于特征的配准方法不是直接利用图像的像素值,而是通过像素导出图像的特征,然后以图像特征为标准,对图像重叠部分的对应特征区域进行搜索匹配,该类拼接算法有比较高的健壮性和鲁棒性。

在两幅图像对应的特征集中利用特征匹配算法尽可能地将存在对应关系的特征对选择出来。一系列的图像分割技术都被用到特征的抽取和边界检测上。

1.3 拼接算法的基本流程
  • 根据给定图像/集,实现特征匹配
  • 通过匹配特征计算图像之间的变换结构
  • 利用图像变换结构,实现图像映射
  • 针对叠加后的图像,采用APAP之类的算法, 对齐特征点
  • 通过图割方法,自动选取拼接缝
  • 根据multi-band bleing策略实现融合

2. 拼接算法原理

2.1 第一种:特征匹配

特征是要匹配的两个输入图像中的元素,为了给图像提供更好的特征匹配,采用角点匹配,进行定量测量。在视点变化时,角点特征是稳定的。角点检测算法有Harris角点检测算法、SIFT特征点检测算法、FAST角点检测算法、SURF特征点检测算法。
本次实验使用的Opencv stitch源码中默认第一选择是SURF特征点检测,第二是ORB特征点检测。
SURF(Speeded Up Robust Features)改进了特征的提取和描述方式,用一种更为高效的方式完成特征的提取和描述。它是SIFT的高效变种,也是提取尺度不变特征,算法步骤与SIFT算法大致相同,但采用的方法不一样,SURF算法要比SIFT算法更高效。

2. 2 第二种:计算图像之间的变换结构

  • 2.1.SURF使用Hessian矩阵来检测特征点,该矩阵是x,y方向的二阶导数矩阵,可测量一个函数的局部曲率,其行列式值代表像素点周围的变化量,特征点需取行列式值的极值点。
  • 2.2特征点定位:通过特征点邻近信息插补来定位特征点。
  • 2.3方向定位:通过计算特征点周围像素点x,y方向的哈尔小波变换,并将x,y方向的变换值在xy平面某一角度区间内相加组成一个向量,在所有的向量当中最长的(即x、y分量最大的)即为此特征点的方向。
  • 2.4特征描述子:选定了特征点的方向后,其周围相素点需要以此方向为基准来建立描述子。此时以5 ∗ 5 555∗5个像素点为一个子区域,取特征点周围 20 ∗ 20 202020∗20个像素点的范围共16个子区域,计算子区域内的x、y方向(此时以平行特征点方向为x、垂直特征点方向为y的哈尔小波转换总和Σdx、ΣdyΣdx、Σdy与其向量长度总和Σ|dx|、Σ|dy|Σ|dx|、Σ|dy|共四个量值,共可产生一个64维的描述子。
  • 2.5如果两个特征点的矩阵迹正负号相同,代表这两个特征具有相同方向上的对比度变化,如果不同,说明这两个特征点的对比度变化方向是相反的,即使欧氏距离为0,也直接予以排除。
  • 2.6用方型滤波器取代SIFT中的高斯滤波器,利用积分图(计算位于滤波器方型的四个角落值)大幅提高运算速度。

2. 3 第三种:通过graph cut寻找拼接缝

上图中,我们把两个Patch拼合到一起,它们首先被放置为有一定重合区域。为了让两者之间的缝隙尽可能的不明显,我们需要知道一个分割线(cut),在这个分割线的左边,图像像素由A贡献,相反在其右边,图像像素则由B贡献。
这里我们将输出的图像看做是由”图(Graph)“所表示,并且给这个Graph两个端点,一个是A,一个是B:

上图中,标有数字的节点实际上是重合区域的像素,节点之间的连接都是有代价的。我们需要拿起剪刀从某个连接上剪掉某些连接,并且要使得被剪掉的连接的代价之和最小化,这就是最典型的图算法中的最小割问题(min cut),它也对应着所谓的最大流问题(max flow)。
那么,如何定义连接之间的代价呢?这里假设在重合区域两个相邻的输出像素分别是s和t。我们知道输出的像素既可能来自于A,也可能来自于B,于是我们用A(s),B(s)来表示s点在A图和B图的颜色, 用A(t),B(t)来表示t点在A图和B图的颜色。
于是,s点和t点的连接的代价被定义为:

我们要做的就是寻找一个切割缝,最小化M ( s , t , A , B ) M(s,t,A,B)M(s,t,A,B)当找到这条缝之后,左边的像素从A中拷贝而来,而右边的像素则从B中拷贝而来即可。
接下来就可以不断的拼合更多的Patch,目标是用越来越多次的覆盖输出图片中的缝隙,使得图像重合部分越来越多,直到代价值收敛。

最后

毕业设计之 ---- 基于机器视觉的图像拼接算法相关推荐

  1. 【毕业设计】机器视觉的图像拼接算法研究与实现 - python 深度学习

    文章目录 0 前言 1 简介 2 拼接效果 3 算法介绍 3.1 拼接算法简介 3.1.1 基于区域相关拼接算法 3.1.2 基于特征相关拼接算法 3.1.3 拼接算法的基本流程 4 拼接算法原理 4 ...

  2. 毕业设计之 --- 基于机器视觉的火车票识别系统

    文章目录 0 前言 1 课题意义 课题难点: 2 实现方法 2.1 图像预处理 2.2 字符分割 2.3 字符识别 部分实现代码 3 实现效果 最后 - 毕设帮助 0 前言 今天学长向大家介绍一个关于 ...

  3. 毕业设计之 ---基于机器视觉的答题卡识别

    简介 今天我们来介绍一个与机器视觉相关的毕业设计 基于机器视觉的答题卡识别系统 多说一句, 现在越来越多的学校以及导师选题偏向于算法类, 这几年往往做web系统的同学很难通过答辩, 仔细一想这也在情理 ...

  4. 毕业设计之 --- 基于机器视觉的手势检测和识别算法

    文章目录 0 前言 1 实现效果 2 技术原理 2.1 手部检测 2.1.1 基于肤色空间的手势检测方法 2.1.2 基于运动的手势检测方法 2.1.3 基于边缘的手势检测方法 2.1.4 基于模板的 ...

  5. 毕业设计 - 题目:基于机器视觉opencv的手势检测 手势识别 算法 - 深度学习 卷积神经网络 opencv python

    文章目录 1 简介 2 传统机器视觉的手势检测 2.1 轮廓检测法 2.2 算法结果 2.3 整体代码实现 2.3.1 算法流程 3 深度学习方法做手势识别 3.1 经典的卷积神经网络 3.2 YOL ...

  6. 机器视觉毕业设计 Python图像拼接算法研究与实现 - opencv

    文章目录 0 前言 一.拼接效果 二.算法介绍 1.拼接算法简介 1.1 基于区域相关拼接算法 1.2 基于特征相关拼接算法 1.3 拼接算法的基本流程 2. 拼接算法原理 2.1 第一种:特征匹配 ...

  7. Python毕业设计 机器视觉图像拼接算法研究与实现 - opencv

    文章目录 0 前言 一.拼接效果 二.算法介绍 1.拼接算法简介 1.1 基于区域相关拼接算法 1.2 基于特征相关拼接算法 1.3 拼接算法的基本流程 2. 拼接算法原理 2.1 第一种:特征匹配 ...

  8. 大数据毕业设计 机器视觉图像拼接算法研究与实现 - python opencv

    文章目录 0 前言 一.拼接效果 二.算法介绍 1.拼接算法简介 1.1 基于区域相关拼接算法 1.2 基于特征相关拼接算法 1.3 拼接算法的基本流程 2. 拼接算法原理 2.1 第一种:特征匹配 ...

  9. ransac剔除误匹配matlab代码,基于APAP图像拼接算法的改进

    硕 士 学 位 论 文 基于 APAP 图像拼接算法 的 改进 学 科 专 业  软件工程  学 位 类 型工 学硕 士学位 研 究 生 姓 名  刘 诗  导 师姓名 ...

  10. 论文研究 | 基于机器视觉的 PCB 缺陷检测算法研究现状及展望

    前面分享了机器视觉在汽车行业与交通行业的应用,其实机器视觉在工业上的应用是最广泛也是最具挑战性的,其中PCB板缺陷检测一直是机器视觉待攻克的难题.印刷电路板(PCB)是电子零件的基板,需求量极大,承载 ...

最新文章

  1. Target runtime Apache Tomcat 6.0 is not defined
  2. Java集合框架中Map接口的使用
  3. Python零碎知识(1):strip lstrip rstrip使用方法
  4. Python PIL | Image.resize() 裁剪 缩放图片
  5. 大模型应用新范式:统一特征表示优化(UFO)
  6. OpenStack精华问答 | OpenStack都有哪些基础服务?
  7. Spring Boot————静态方法如何调用Spring容器中的Bean
  8. 数据传输优化篇之:scp 或 rsync+ssh 参数优化
  9. PHP收费事件导致用户流失,PHP秒杀系统方案(解决大流量,高并发)
  10. 单元测试的思考与实践
  11. angularjs学习:通信
  12. [asp.net]自定义控件(数据绑定)
  13. cocoscreator 资源加密
  14. MSP430加密代码保护
  15. UnityWebGL引用4399的Api
  16. python安卓-如何用python写一个安卓APP?(上)
  17. 1-5分钟上手自动化测试——Airtest+Poco快速上手
  18. 在Ubuntu 10.04中安装 insight
  19. steam同乐无法连接远程计算机,Steam远程同乐功能怎么用 Steam远程同乐功能使用教程...
  20. 【UML】 用例粒度

热门文章

  1. QQ音乐API分析之-加密参数分析(sign计算)
  2. 时间序列研(part11)--EG两步法
  3. linux vim创建文件配置文件,vim linux 强大的配置文件
  4. gis怎么提取水系_利用ArcGIS水文分析工具提取河网
  5. 计算机中word音乐符号在哪里找,word音乐符号怎么输入?小编告诉你
  6. 使用matlab进行三角函数拟合
  7. ioccc_konno
  8. 大二下:概率论与数理统计复习 期末试题A
  9. 车辆工程计算机发展前景,车辆工程专业就业方向有哪些 就业前景怎么样
  10. 如何把SWF转为PDF文件