MATLAB图像拼接技术研究

在实际应用中,经常会用到超过人眼视野范围甚至是全方位的高分辨率图像,普通数码相机的视野范围往往难以满足要求。为了得到大视野范围的图像,人们使用广角镜头和扫描式相机进行拍摄。但这些设备往往价格昂贵、使用复杂,而且在一幅低分辨率的图像中得到超宽视角会损失景物中物体的分辨率,所以,使用广角镜头和扫描式相机只能部分的解决这一问题。此外,广角镜头的图像边缘会难以避免的产生扭曲变形,不利于一些场合的应用。为了在不降低图像分辨率的条件下获取大视野范围的图像,人们提出了图像拼接技术,将普通图像或视频图像进行无缝拼接,得到超宽视角甚至360度的全景图,这样就可以用普通数码相机实现场面宏大的景物拍摄。利用计算机进行匹配,将多幅具有重叠关系的图像拼合成为一幅具有更大视野范围的图像,这就是图像拼接的目的。

本文的研究内容与组织结构

本文研究的重点是使用数码相机或手机手持拍摄的图像的全自动拼接。算法的基本流程如下:

  1. 读取n副连续有重叠部分的图像,在n副图像中检测SIFT特征,并用SIFT

特征描述子对其进行描述。

  1. 匹配相邻图像的特征点,并根据特征点向量消除误匹配。
  2. 使用RANSAC方法,确定变换参数。
  3. 图像融合

简介

v2-d5752cc1ba55a13be26c0b573487db26_b.jpg

如何确定矩阵M? 首先确定一定数量的特征点,利用特征点的匹配给出图像变换的估计初值,最后通过递归算法得到最后的变换。

特征提取与匹配

采用SIFT算法进行特征点的提取与匹配。主要包含4个步骤:

  1. 建立尺度空间,寻找候选点
  2. 精确确定关键点,剔除不稳定点
  3. 确定关键点的方向
  4. 提取特征描述符

本文中matlab实现代码如下:


im11 = img{ccc-1};

im22 = img{ccc};

[im1, des1, loc1] = sift2(im11);

[im2, des2, loc2] = sift2(im22);

distRatio = ;

des2t = des2';

match(size(des1,1)) = 0;

for i = 1 : size(des1,1)

dotprods = des1(i,:) * des2t;

[vals,indx] = sort(acos(dotprods));

if (vals(1) < distRatio * vals(2))

match(i) = indx(1);

end

end

im3 = appendimages(im1,im2);

figure('Position', [100 100 size(im

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值