图像全景拼接

图像全景拼接

1、全景拼接简介

在此前了解了SIFT的特征点的提取与匹配,并且在SIFT的基础上,采用RANSAC算法对图像变换矩阵进行求解与精炼,删除错配。全景拼接需要在此基础上完成。

2、全景拼接步骤

1.在连续图像对间使用sift特征寻找匹配对应点对
2.进行可视化匹配,匹配两幅图像之间的特征
3.将匹配转换成齐次坐标点的函数,估计单应性矩阵
4.通过估计出图像间的单应性矩阵,将所有的图像扭曲到一个公共的图像平面上

要实现两张图片的简单拼接,其实只需找出两张图片中相似的点 (至少四个,因为 homography 矩阵的计算需要至少四个点), 计算一张图片可以变换到另一张图片的变换矩阵 (homography 单应性矩阵)拟合成一个单应性矩阵。对每个对应点对使用该单应性矩阵,然后返回相应的平方距离之和。用这个矩阵把那张图片变换后放到另一张图片相应的位置 ,从而实现全景拼接

3、实验内容及分析

3.1、实验要求

  1. 针对固定点位拍摄多张图片,以中间图片为中心,实现图像的拼接融合
  2. 针对同一场景(需选取视差变化大的场景,也就是有近景目标)更换拍摄位置
  3. 对结果进行分析说明

3.2、实验代码

from pylab import *
from numpy import *
from PIL import Image

# If you have PCV installed, these imports should work
from PCV.geometry import homography, warp
from PCV.localdescriptors import sift

"""
This is the panorama example from section 3.3.
"""

# set paths to data folder
featname = ['C:/Users/Administrator/Desktop/pythonhomework/pingjie4/'+str(i+1)+'.sift' for i in range(5)] 
imname = ['C:/Users/Administrator/Desktop/pythonhomework/pingjie4/'+str(i+1)+'.jpg' for i in range(5)]

# extract features and match
l = {
   }
d = {
   }
for i in range(5): 
    sift.process_image(imname[i],featname[i])
    l[i],d[i] = sift.read_features_from_file(featname[i])

matches = {
   }
for i in range(4):
    matches[i] = sift.match(
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
压缩包中包含的具体内容: 对给定数据中的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、付费专栏及课程。

余额充值