【图像融合】基于SIFT结合RANSAC实现图像拼接融合附matlab代码

 1 简介

针对RANSAC算法在误匹配点较多的情况下容易生成错误模型,导致较多的正确匹配点被剔除,降低影像间的匹配精度的问题.提出通过计算特征点的响应值,将响应值进行排序,然后将响应值较小的一部分剔除,最后使用RANSAC算法,从而达到较高的匹配精度,提高了匹配效率和正确匹配率.实验表明,本文算法较SIFT+RANSCA算法在匹配效率方面平均提高51.4%,正确匹配率平均提高8.24%,匹配精度平均提高5个像素.

正在上传…重新上传取消

2 部分代码

function [des1, loc1, des2, loc2] = drawKeypoints(img1, img2)% 用SIFT算法计算每幅图像的特征点描述子和特征点坐标[des1, loc1] = sift(img1);[des2, loc2] = sift(img2);[x1,~] = size(loc1(:,1));[x2,~] = size(loc2(:,1));fprintf('img1有 %d 个关键点\n',x1);fprintf('img2有 %d 个关键点\n',x2);% 构建一幅图,将两幅原始图像简单排在一起显示,方便后续画出特征点匹配线img3 = appendimages(img1,img2);figure('Position', [100 100 size(img3,2) size(img3,1)]);colormap('gray');imagesc(img3);hold on;% 绘制img2的角点时需要加上一个偏移量(即img1的宽)disp = size(img1,2);% 开始绘制img1的特征点(角点)for i = 1 : size(loc1(:,1))    % loc的第一列是角点坐标的x,第二列是y,但Matlab绘图时默认横向是y周纵向是x轴    plot(loc1(i,2), loc1(i,1),'co');end% 开始绘制img2的特征点(角点)for i = 1 : size(loc2(:,1))    plot(loc2(i,2)+disp, loc2(i,1),'bo');endhold off;end

3 仿真结果

4 参考文献

[1]QIAO Yu-qing等. "基于SIFT和RANSAC算法的影像匹配." 中国计算机学会; 中国系统仿真学会; 中国图象图形学会 中国计算机学会; 中国系统仿真学会; 中国图象图形学会, 2017.

[2]马强, 项昭保, 黄良学,等. 基于改进SIFT和RANSAC图像拼接算法研究[J]. 计算机技术与发展, 2016, 26(004):61-65.​

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值