clc;
clear;
close all;
load colorimage201;
load colorimage202;
% extractfeatures 函式輸入為灰度影象,因此要將rgb影象用函式 rgb2gray 進行轉換
image1= rgb2gray(colorimage201);
image2= rgb2gray(colorimage202);
% surf 特徵檢測
ptsimage1 = detectsurffeatures(image1);
ptsimage2 = detectsurffeatures(image2);
% surf 特徵提取
[featuresoriginal,validptsimage1] = extractfeatures(image1,ptsimage1);
[featuresdistorted,validptsimage2] = extractfeatures(image2,ptsimage2);
% surf 特徵匹配
index_pairs = matchfeatures(featuresoriginal,featuresdistorted);
matchedptsimage1 = validptsimage1(index_pairs(:,1));
matchedptsimage2 = validptsimage2(index_pairs(:,2));
% 顯示有誤匹配的情況
figure;
subplot(1,2,1)
showmatchedfeatures(image1,image2,matchedptsimage1,matchedptsimage2);
str=sprintf('matched inlier points\n(including outliers)');
title(str,'fontname','times new roman','fontsize',12);
% estimategeometrictransform 函式 剔除誤匹配 (msac演算法)
[tform,inlierptsimage2,inlierptsimage1] =estimategeometrictransform(matchedptsimage2,matchedptsimage1,'similarity');
% 顯示沒有誤匹配的情況
subplot(1,2,2)
showmatchedfeatures(image1,image2,inlierptsimage1,inlierptsimage2);
str=sprintf('matched inlier points\n(excluding outliers)');
title(str,'fontname','times new roman','fontsize',12);
SURF特徵提取
surf,全稱speeded up robust feature,是sift演算法的改進版和加速版,綜合性能更優。由herbert bay發表在2006年的歐洲計算機視覺國際會議 europen conference on computer vision,eccv 上。surf演算法利用了積分圖 特...
帶有Lowe s演算法的SURF特徵提取和匹配
直接使用surf提取,匹配的效果還是相當糟糕的,如果我們拿著這樣子的匹配結果去實現影象拼接或者物體追蹤,效果肯定是極差的。所以我們需要進一步篩選匹配點,來獲取優秀的匹配點,這就是所謂的 去粗取精 這裡我們採用了lowe s演算法來進一步獲取優秀匹配點。為了排除因為影象遮擋和背景混亂而產生的無匹配關係...
Sift特徵提取演算法
2004 年d.lowe 提出了乙個新的演算法 尺度不變特徵變換 sift 這個演算法可以幫助我們提取影象中的關鍵點並計算它們的描述符。sift演算法的特點就是,對於區域性特徵對旋轉 縮放 亮度變化保持不變。sift 演算法主要內容如下 1 尺度空間的極值檢測 2 特徵點定位 3 特徵方向賦值 4 ...