2011-12-08 9 views
9

誰でも助けてくれますか?私はopencvでC++を使って、提供されたコードでフィーチャー・マッチャーが選択する最良のピクセルのx座標とy座標を取得したいと思います。Opencv - フィーチャマッチングからピクセル座標を取得する

http://opencv.itseez.com/doc/tutorials/features2d/feature_flann_matcher/feature_flann_matcher.html#feature-flann-matcher

は周りを探してきたが、動作するように何かを得ることはできません。

ご協力いただきありがとうございます。

答えて

13

DMatchクラスは、KeyPoints(電車とクエリ)の一致する2つの間の距離を与えます。したがって、検出された最良のペアは、最小距離を有するべきである。このチュートリアルでは、2 *(最小ペア距離)未満のすべての一致を取得し、それらを最善とみなします。

したがって、最もよく一致する(x、y)座標を取得する。 2つの異なるKeyPointベクトル(keypoints_1およびkeypoints_2)から対応するインデックスを検索するには、good_matchesDMatchオブジェクトのリストです)を使用する必要があります。何かのように:

for(size_t i = 0; i < good_matches.size(); i++) 
{ 
    Point2f point1 = keypoints_1[good_matches[i].queryIdx].pt; 
    Point2f point2 = keypoints_2[good_matches[i].trainIdx].pt; 
    // do something with the best points... 
} 
+0

一部セミコロンが欠落している:)ありがとう@ScottMarchant –

+0

、良い先生:)、セミコロンは今追加されました。 – mevatron

関連する問題