Programming 6

Feature Matching

Goal

作業環境

硬體規格:

CUP:12th Gen Intel(R) Core(TM) i5-12400   2.50 GHz

RAM:32G

 

軟體規格:

作業系統:Windows 10 專業版

C++ IDE:Visual Studio Community 2022 (64 位元) 版本 17.5.1

OpenCV:4.7.0 (contains contrib)

問題與解決方法

相關理論概述

此程式使用的影像是我自行拍攝的影像,設備為 iPhone Xs 的內建相機 (並調整尺寸為500*375)

SURF(Speeded-Up Robust Features)

1.特徵點偵測。

這是 P5 做過的 Feature detection,並使用 SURF 算法針對兩張範例影像偵測 keypoints 和 descriptors 並分別儲存。

BFMatcher 是 OpenCV 中的一個特徵匹配器類別。

2.匹配動作。

創建 BFMatcher 物件,並指定了歐氏距離為測量方法 NORM_L2,計算描述子之間的距離。

接著進行特徵匹配,descriptors1 和 descriptors2 作為輸入,並將匹配結果存儲在 matches 中。

matches 容器中存儲了描述子之間的匹配結果,每個 DMatch 物件代表一個匹配對,包含了兩個描述子的索引和它們之間的距離。

3.畫上匹配結果

4.顯示結果及匹配對數量。


結論

關於半徑匹配、交叉檢查、比值測試都屬於過濾匹配結果的方法,這些過濾方法的目的是排除一些可能的誤匹配,從而提高匹配的準確性和可靠性,可以根據應用的需求,使用其中一種或多種方法進行組合,以得到更好的匹配結果。

模板匹配(template matching)

第一區域

第二區域

第三區域

其他特徵提取方法的匹配結果

結果分析及心得

ReferenceComputer Vision 2023 - P6 (ykwang.tw)OpenCV 4 Computer Vision Application Programming Cookbook CH9, by D. M. Escrivá, R. Laganiere, Fourth Edition, Packt Publishing, 2019.[Book URL]  [GitHubCSDN-OpenCV 4 下 SIFT、SURF的使用-魏GordonChatGPT