【图像融合】基于SIFT结合RANSAC实现图像拼接融合附matlab代码
【图像融合】基于SIFT结合RANSAC实现图像拼接融合附matlab代码
TT_Matlab
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。
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 个关键点
’
,x1);
fprintf(
’img2有 %d 个关键点
’
,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’
);
end
hold off;
end
3 仿真结果
4 参考文献
[1]QIAO Yu-qing等. "基于SIFT和RANSAC算法的影像匹配." 中国计算机学会; 中国系统仿真学会; 中国图象图形学会 中国计算机学会; 中国系统仿真学会; 中国图象图形学会, 2017.
[2]马强, 项昭保, 黄良学,等. 基于改进SIFT和RANSAC图像拼接算法研究[J]. 计算机技术与发展, 2016, 26(004):61-65.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26
