图像的拼接技术包括三大部分:特征点提取与匹配、图像配准、图像融合。
1、基于SRUF 的特征点的提取与匹配
为了使拼接具有良好的精度和鲁棒性,同时又使其具有较好的实时性,本实验采用SURF 算法完成图像序列特征点的提取。
SURF 算法又称快速鲁棒特征,借鉴了SIFT 中简化近似的思想,将DoH 中的高斯二阶微分模板进行了近似简化,使得模板对图像的滤波只需要进行几个简单的加减法运算,并且这种运算与滤波模板的尺寸无关。实验证明,SURF 算法较SIFT 在运算速度上要快3 倍左右,综合性能要优于SIFT 算法。
SURF 特征点提取与描述主要包含4 个步骤:
1)检测尺度空间极值。
2)精炼特征点位置。
3)计算特征点的描述信息。

4)生成描述特征点的特征向量。

SURF的匹配算法是通过计算两个特征点藐视算子之间的欧式距离得到的,即找出与特征点描述符pi欧式距离最近和次近的两个邻居特征点描述符qi'和qi'',然后计算pi与qi'以及pi与qi'' 两组描述符之间欧式距离的比值r。如果比值r小于规定阈值规则视为匹配成功,(pi,qi')点对则为图像序列中的一对匹配点,否则匹配失败。这种匹配方法简便快捷,但是会差生误匹配。在图像配准模块会使用RANSAC进行误匹配点的筛选。

2、图像配准

图像配准是一种确定待拼接图像间的重叠区域以及重叠位置的技术,它是整个图像拼接的核心。本节采用的是基于特征点的图像配准方法,即通过匹配点对构建图像序列之间的变换矩阵,从而完成全景图像的拼接。

变换矩阵H求解是图像配准的核心,其求解的算法流程如下。

1)检测每幅图像中特征点。

2)计算特征点之间的匹配。

3)计算图像间变换矩阵的初始值。

4)迭代精炼H变换矩阵。

5)引导匹配。用估计的H去定义对极线附近的搜索区域,进一步确定特征点的对应。

6)重复迭代4)和5)直到对应点的数目稳定为止。

设图像序列之间的变换为投影变换

可用4组最佳匹配计算出H矩阵的8 个自由度参数hi=( i=0,1,...,7),并以此作为初始值。

为了提高图像配准的精度,本节采用RANSAC算法对图像变换矩阵进行求解与精炼,达到了较好的图像拼接效果。RANSAC算法的基本原理可通过图9-1来描述。

图9-1:RANSAC算法

RANSAC算法的思想简单而巧妙:首先随机地选择两个点,这两个点确定了一条直线,并且称在这条直线的一定范围内的点为这条直线的支撑。这样的随机选择重复数次,然后,具有最大支撑集的直线被确认为是样本点集的拟合。在拟合的误差距离范围内的点被认为是内点,它们构成一致集,反之则为外点。根据算法描述,可以很快判断,如果只有少量外点,那么随机选取的包含外点的初始点集确定的直线不会获得很大的支撑,值得注意的是,过大比例的外点将导致RANSAC算法失败。在直线拟合的例子中,由点集确定直线至少需要两个点;而对于透视变换,这样的最小集合需要有4个点。

图9-1中蓝色点属于内点(正确点),而第红色点属于外点(偏移点)。此时用最小二乘法拟合这组数据,实际的最佳拟合直线是那条穿越了最多点数的蓝色实线。

3、图像合成

根据图像间变换矩阵H,可以对相应图像进行变换以确定图像间的重叠区域,并将待融和图像映射到到一幅新的空白图像中形成拼接图。需要注意的是,由于普通的相机在拍摄照片时会自动选取曝光参数,这会使输入图像间存在亮度差异,导致拼接后的图像缝合线两端出现明显的明暗变化。因此,在融和过程中需要对缝合线进行处理。进行图像拼接缝合线处理的方法有很多种,如颜色插值和多分辨率样条技术等,本节采用了快速简单的加权平滑算法处理拼接缝问题。该算法的主要思想是:图像重叠区域中像素点的灰度值Pixel 由两幅图像中对应点的灰度值Pixel_L和_R加权平均得到,即Pixel=k×Pixel_L+(1-k)× Pixel_R,其中k是可调因子。图9-2为加权平滑算法图。

图9-2:加权平滑算法

通常情况下0<k<1,即在重叠区域中,沿图像1向图像2的方向,k由1渐变为0,从而实现重叠区域的平滑拼接。为使图像重叠区域中的点与两幅图像建立更大的相关性,令k=d1/(d1+d2),其中d1,d2分别表示重叠区域中的点到两幅图像重叠区域的左边界和右边界的距离。即使用公式Pixel = ×Pixel_L + ×Pixel_R进行缝合线处理。

图像拼接算法总结(一)相关推荐

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

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

  2. matlab 图像拼接算法,MATLAB图像拼接算法及实现

    MATLAB图像拼接算法及实现 图像拼接算法及实现(一)论文关键词:图像拼接 图像配准 图像融合 全景图论文摘要:图像拼接(image mosaic)技术是将一组相互间重叠部分的图像序列进行空间匹配对 ...

  3. Halcon图像拼接-算法速度优化

    参考例程mosaicking_pyramid.hdev 原理简要说明:在上一篇的基础上,我们知道了在halcon中,图像拼接的大致原理,知道了算法运行的过程,其中一个关键步骤至关重要,那就是找角点.我 ...

  4. as算法 matlab,APAP(As Projective As Possible)视差鲁棒的图像拼接算法

    [实例简介] 论文<As-Projective-As-Possible Image Stitching with Moving DLT>中的拼接算法,对于视差图像拼接具有一定的鲁棒性,但是 ...

  5. 【老生谈算法】matlab实现图像拼接算法源码——图像拼接

    matlab图像拼接程序 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]matlab图像拼接程序代码.doc 2.算法详解: ...

  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实现RANSAC图像拼接算法(应用广角图片)

    进算计视觉课程,图像处理实例共享. 文章目录 第一.文章实现内容及Ransac算法步骤简介 第二.SIFT特征提取方法简介及效果 第三.BFMatcher与Flann特征点匹配方法效果对比 第四.RA ...

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

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

  10. 图像拼接算法总结(二)

    2.特征提取与匹配 OpenCV中关于SURF算法的部分,常常涉及到的是SURF.SurfFeatureDetector.SurfDescriptorExtractor这三个类: features2d ...

最新文章

  1. couchdb 任意命令执行漏洞(cve-2017-12636)
  2. 索引中丢失IN或OUT
  3. imutils用法总结
  4. linux网卡内核文件在哪里,linux-2.6.35内核配置和网卡驱动添加
  5. python—os模块、时间模块
  6. vc编译器编译linux平台拷贝的源码问题
  7. android获取app用户数据,专项研究:Android收集用户数据是iPhone的20倍!
  8. dubbo服务执行过程源码分析
  9. sql server2012 第一次访问慢_【共同学习】第1章 数据库和SQL (续)
  10. 2021,新手初学写作的几个温馨建议
  11. 谷歌浏览器 —— 快捷键(vimium:像使用 vim 一样操作当前页面)
  12. linux数字小键盘,银行工作者必备!小郭数字小键盘练习软件:免费数字键小键盘指法练习...
  13. 车载Android应用开发入门指南(必看)
  14. 如何写一份风投喜欢的商业计划书?【转载】
  15. 使用Python实现搜索任意电影资源的磁力链接
  16. 山东大学操作系统实验
  17. Linux 基于tar与openssl加密解密压缩包
  18. hadoop系列三:mapreduce的使用(一)
  19. 刹车刹不住,太危险?我在绿源杭州电动车店提的新车超稳哒~
  20. ppython3 关于agg函数的用法(一般与groupby函数连用)

热门文章

  1. Android 常用炫酷控件(开源项目)git地址汇总
  2. 农村常见60种野生中草药
  3. hilbert谱 matlab,转 matlab 信号处理——Hilbert变换及谱分析
  4. 迈高图手机版_迈高图(地图数据下载器)
  5. 【MapGIS精品教程】006:MapGIS根据经纬度计算各比例尺图幅编号
  6. 零基础一周学会PIC单片机视频教程
  7. 运筹学实验报告c语言,运筹学教案-实验.doc
  8. 使用python调用openmpi编译的MPI 动态库报错:mca_base_component_repository_open: unable to open mca_patcher_overwri
  9. message计算机英语,计算机英语词汇解释汇总
  10. 实现计算机考试和vb交换的,2012江苏省计算机二级VB试题库及答案