天天看點

【圖像融合】基于SIFT結合RANSAC實作圖像拼接融合附matlab代碼

 1 簡介

針對RANSAC算法在誤比對點較多的情況下容易生成錯誤模型,導緻較多的正确比對點被剔除,降低影像間的比對精度的問題.提出通過計算特征點的響應值,将響應值進行排序,然後将響應值較小的一部分剔除,最後使用RANSAC算法,進而達到較高的比對精度,提高了比對效率和正确比對率.實驗表明,本文算法較SIFT+RANSCA算法在比對效率方面平均提高51.4%,正确比對率平均提高8.24%,比對精度平均提高5個像素.

【圖像融合】基于SIFT結合RANSAC實作圖像拼接融合附matlab代碼

【圖像融合】基于SIFT結合RANSAC實作圖像拼接融合附matlab代碼

編輯

【圖像融合】基于SIFT結合RANSAC實作圖像拼接融合附matlab代碼

【圖像融合】基于SIFT結合RANSAC實作圖像拼接融合附matlab代碼

編輯

【圖像融合】基于SIFT結合RANSAC實作圖像拼接融合附matlab代碼

【圖像融合】基于SIFT結合RANSAC實作圖像拼接融合附matlab代碼

編輯

【圖像融合】基于SIFT結合RANSAC實作圖像拼接融合附matlab代碼

正在上傳…重新上傳取消

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');
end
hold off;
end      

3 仿真結果

【圖像融合】基于SIFT結合RANSAC實作圖像拼接融合附matlab代碼

【圖像融合】基于SIFT結合RANSAC實作圖像拼接融合附matlab代碼

編輯

【圖像融合】基于SIFT結合RANSAC實作圖像拼接融合附matlab代碼

【圖像融合】基于SIFT結合RANSAC實作圖像拼接融合附matlab代碼

編輯

【圖像融合】基于SIFT結合RANSAC實作圖像拼接融合附matlab代碼

【圖像融合】基于SIFT結合RANSAC實作圖像拼接融合附matlab代碼

編輯

【圖像融合】基于SIFT結合RANSAC實作圖像拼接融合附matlab代碼

【圖像融合】基于SIFT結合RANSAC實作圖像拼接融合附matlab代碼

編輯

4 參考文獻

[1]QIAO Yu-qing等. "基于SIFT和RANSAC算法的影像比對." 中國計算機學會; 中國系統仿真學會; 中國圖象圖形學會 中國計算機學會; 中國系統仿真學會; 中國圖象圖形學會, 2017.

[2]馬強, 項昭保, 黃良學,等. 基于改進SIFT和RANSAC圖像拼接算法研究[J]. 計算機技術與發展, 2016, 26(004):61-65.

部落客簡介:擅長智能優化算法、神經網絡預測、信号處理、元胞自動機、圖像處理、路徑規劃、無人機等多種領域的Matlab仿真,相關matlab代碼問題可私信交流。

部分理論引用網絡文獻,若有侵權聯系部落客删除。