帶有Lowe s演算法的SIFT特徵提取和匹配

2021-10-01 10:57:32 字數 1041 閱讀 4071

採用lowe『s的演算法選出優秀匹配點。

#include

"highgui/highgui.hpp"

#include

"opencv2/nonfree/nonfree.hpp"

#include

"opencv2/legacy/legacy.hpp"

#include

using

namespace cv;

using

namespace std;

intmain()

} mat first_match;

drawmatches

(//使用函式 drawmatches來繪製檢測到的匹配點

image02, keypoint2,

//第一幅影象及其特徵點

image01, keypoint1,

//第二幅影象及其特徵點

goodmatchepoints,

//匹配結果

first_match//生成的影象);

}

輸入影象:

輸出影象:

匹配點明顯減少

帶有Lowe s演算法的SURF特徵提取和匹配

直接使用surf提取,匹配的效果還是相當糟糕的,如果我們拿著這樣子的匹配結果去實現影象拼接或者物體追蹤,效果肯定是極差的。所以我們需要進一步篩選匹配點,來獲取優秀的匹配點,這就是所謂的 去粗取精 這裡我們採用了lowe s演算法來進一步獲取優秀匹配點。為了排除因為影象遮擋和背景混亂而產生的無匹配關係...

SIFT演算法的幾個問題

sift演算法在影象搜尋方面,用作基礎特徵,個人感覺有一些問題,記錄在這裡 1 求主方向階段太過依賴影象區域性畫素的梯度方向,有可能使找到的主方向不準確 而後面的特徵向量以及匹配嚴重依賴主方向,一旦有偏差效果會顯著下降 2 圖層金字塔的層如何取是個問題,如果取得不夠緊密,會在匹配時出現偏差 而如果取...

Emgu cv中的SIFT演算法實現

sift演算法大家都比較熟悉,網上的版本很多,剛開始接觸時我主要研究的是c 因為相對於c 基於open cv c 的sift演算法資料更多,但是由於想要實現較為理想的介面效果,最終還是放棄了使用c 轉而使用c c 中sift演算法主要分為三種 1 脫離emgu cv平台,完全手動實現所有sift演算...