33 SIFT特徵匹配(EmguCV學習)

2021-10-07 09:19:50 字數 2883 閱讀 2029

懶了很久,還有最後一點兒,全部整理完~

1、sifi運算元使用流程:

初始化sift向量,呼叫detect()方法識別兩張各自的特徵點;

使用sift的compute()方法計算計算兩張各自特徵點的特徵描述符;

使用匹配器matcher進行特徵描述符匹配(bf與flann),以其中一幅為模板,在另一幅中尋找匹配的特徵點;

匹配結果儲存在dmatch結構體變數中,設定距離閾值對匹配結果進行篩選,得到好的匹配點;

使用drawmatch()方法進行繪製,顯示匹配結果;

2、bf暴力匹配器在emgucv中通過bfmatcher類進行實現,使用add()方法新增模板的特徵描述符,使用 knnmatch() 方法尋找計算另一幅影象中的k個匹配特徵點;

3、可以參考:

bf匹配:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

using emgu.cv;

using emgu.cv.cvenum;

using emgu.cv.structure;

using emgu.util;

using emgu.cv.util;

using system.drawing;

using emgu.cv.xfeatures2d;

//包含sift類

using emgu.cv.features2d;

//包含features2dtoolbox類

namespace lesson33

if(matches[i][0

].distance < min_dist)

}//對bf匹配結果進行篩選

vectorofvectorofdmatch good_matches =

newvectorofvectorofdmatch()

;for

(int i =

0; i < matches.size;i++)}

//繪製匹配點

mat result =

newmat()

; features2dtoolbox.

drawmatches

(srcimg1, vkeypoint1, srcimg2, vkeypoint2, good_matches,

result,

newmcvscalar(0

,255,0

),newmcvscalar(0

,0,255))

;//顯示匹配結果

cvinvoke.

imshow

("match-result"

, result)

; cvinvoke.

waitkey(0

);}}

}

flann匹配:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

using emgu.cv;

using emgu.cv.cvenum;

using emgu.cv.structure;

using emgu.util;

using emgu.cv.util;

using system.drawing;

using emgu.cv.xfeatures2d;

//包含sift類

using emgu.cv.features2d;

//包含features2dtoolbox類

using emgu.cv.flann;

//包含快速最鄰近匹配

namespace lesson33

}}

bf匹配:

flann匹配:

SIFT特徵匹配

影象特徵分很多種,例如顏色特徵 紋理特徵 形狀特徵 空間關係特徵等。常用的特徵為sift特徵。sift scale invariantfeaturetransform,sift 具有以下特性 1 對平移 旋轉 伸縮 亮度 遮擋和雜訊等具有良好的不變性,對視覺變化 仿射變換也有一定的穩定性。2 即使少...

RANSAC用於SIFT特徵匹配

關於ransac 演算法的基本思想,可從網上搜尋找到,這裡只是ransac用於sift特徵匹配篩選時的一些說明。ransac演算法在sift特徵篩選中的主要流程是 1 從樣本集中隨機抽選乙個ransac樣本,即4個匹配點對 2 根據這4個匹配點對計算變換矩陣m 3 根據樣本集,變換矩陣m,和誤差度量...

利用SIFT進行特徵匹配

sift演算法是一種基於尺度空間的演算法。利用sift提取出的特徵點對旋轉 尺度變化 亮度變化具有不變性,對視角變化 仿射變換 雜訊也有一定的穩定性。sift實現特徵的匹配主要包括四個步驟 1 提取特徵點 構建尺度空間 模擬影象的多尺度特徵。經證實,唯一可能的尺度空間核是高斯函式。用l x,y,表示...