Python 图像拼接

图像拼接

1.1 基本介绍

  图像拼接技术就是将数张有重叠部分的图像(可能是不同时间、不同视角或者不同传感器获得的)拼成一幅无缝的全景图或高分辨率图像的技术。图像拼接在医学成像、计算机视觉、卫星数据、军事目标自动识别等领域具有重要意义。
  图像配准(image alignment)和图像融合是图像拼接的两个关键技术。图像配准是图像融合的基础,而且图像配准算法的计算量一般非常大,因此图像拼接技术的发展很大程度上取决于图像配准技术的创新。早期的图像配准技术主要采用点匹配法,这类方法速度慢、精度低,而且常常需要人工选取初始匹配点,无法适应大数据量图像的融合。图像拼接的方法很多,不同的算法步骤会有一定差异,但大致的过程是相同的。

1.2 基本原理

  在图像拼接中首先利用SIFT算法提取图像特征进而进行特征匹配,继而使用RANSAC算法对特征匹配的结果进行优化,接着利用图像变换结构进行图像映射,最终进行图像融合。

1.2.1 解决“鬼影”:APAP算法

算法流程:

  • 提取两张图片的sift特征点
  • 对两张图片的特征点进行匹配
  • 匹配后,使用RANSAC算法进行特征点对的筛选,排除错误点。筛选后的特征点基本能够一一对应
  • 使用DLT算法,将剩下的特征点对进行透视变换矩阵的估计
  • 由于得到的透视变换矩阵是基于全局特征点对进行的,即一个刚性的单应性矩阵完成配准。为提高配准的精度,Apap将图像切割成无数多个小方块,对每个小方块进行单应性矩阵变换,非常依赖于特征点对。若图像高频信息较少,特征点对过少,配准将完全失效,并且对大尺度的图像进行配准,其效果也不是很好,一切都决定于特征点对的数量。

1.2.2 寻找最佳拼接缝

为什么寻找最佳拼接缝?
  因为图像的重叠导致了重影,解决方式就是不让图片重叠。具体的方式是在图像重叠的区域中找到一条切割线,使得在切割线的左边用图片A,在切割线的右边用图片B,则就解决了图像拼接后因为重叠而导致的重影问题。

寻找原则:
  要找到一条好的切割线,就要在线的左右两边图像的像素差异比较小,这样切割出来的效果,就没有强烈的违和感。
在这里插入图片描述

1.2.3 图像融合

  采用Laplacian(拉普拉斯)金字塔,通过对相邻两层的高斯金字塔进行差分,将原图分解成不同尺度的子图,对每一个之图进行加权平均,得到每一层的融合结果,最后进行金字塔的反向重建,得到最终融合效果过程。

  1. 首先计算当前待拼接图像和已合成图像的重叠部分。
    在这里插入图片描述

  2. 两幅图像的融合:分别构建图像A、B的高斯金字塔和拉普拉斯金字塔,然后进行加权融合。
    在这里插入图片描述

  3. 对加权后的拉普拉斯金字塔进行重构。
    在这里插入图片描述

1.3 实验过程

1.3.1 实验代码

from numpy import *
from matplotlib.pyplot import *
from PIL import Image
from numpy import array, vstack, dot

import warp
import homography
from PCV.localdescriptors import sift


featname = ['img/' + str(i + 1) + '.sift' for i in range(5)]
imname = ['img/' + str(i + 1) + '.jpg' 
  • 4
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值