SURF特徵提取(MSAC演算法剔除誤匹配)

2021-07-25 03:17:29 字數 1449 閱讀 6500

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 ...