features_match — MATCHREG featmatch op

• 資料種類:table × table → table

• 呼叫: import fullseye as fs; fs.ledger.features_match(features1, features2, ratio=0.8, mutual=True, max_distance=None)(要直接呼叫實作,import featmatch; featmatch.features_match(features1, features2, ratio=0.8, mutual=True, max_distance=None);從台帳取用則 opsmatchreg.get("features_match"))

• GPU:無(僅 CPU 參考實作)

用法

以最近鄰 + 比率檢定(+ 互為最近鄰)匹配兩個特徵表。→ table(kind="feature_matches")。

> 以下的詳細說明為原文 —— 摘要與標題已翻譯。

記述子が実数(SIFT)なら L2、2 値(ORB)なら Hamming。1 番目に近い相手が 2 番目より明らかに近い(L2 は d1 < ratio · d2、2 乗距離では ratio² で比べる。Hamming は d1 < ratio · d2) ときだけ残し、mutual=True なら相手の側から見ても最近傍であることを求める。

実数の記述子での規則は features.match_descriptors と同じ(同じ入力で同じ組が返ることを tests/test_featmatch.py が固定している)。違いは距離行列を一括で作ること(GPU の影の経路に乗る形)と、2 値の記述子を受けること。

Args:

features1, features2: features_sift / features_orb の表。記述子の種類が同じであること。

ratio: 比の検定のしきい値(0 < ratio <= 1、既定 0.8)。

mutual: 相互最近傍を求めるか。

max_distance: 距離の上限(L2 は距離そのもの、Hamming はビット数)。None なら無し。

Returns:

dict(kind="feature_matches")。idx (M,2) / pts1 / pts2 (M,2) の (x, y) /

distance (M,)(L2 は距離、Hamming はビット数)/ ratio_value (M,)(d1/d2)/ metric /

n1 / n2 / image_shape1 / image_shape2。

Raises:

ValueError: 表の種類が違う / 記述子の種類か次元が違う / 引数が値域外。

詳細使用指南

• matching_registration 族使用指南

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

• 演算法的正典(作者、年份)與用途見上面的族使用指南。

可執行的範例(實際呼叫該運算子並已驗證的樣例)

• poc_part_locate_features — py -3.11 examples/poc_part_locate_features.py

型別可銜接的下一個運算子(可接受 table 作為輸入)

ransac_homography · ransac_fundamental · registration_to_flow2d

同類別(featmatch)

features_sift · features_orb · ransac_homography · ransac_fundamental · features_accuracy_table


*Provenance: featmatch.py — MATCHREG 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.