最終更新:2016-06-06 (月) 03:19:05 (2881d)  

Cv2.DrawMatches
Top / Cv2.DrawMatches

マッチングを行った2枚の画像を横方向に連結し,対応点を線でつないだ可視化を行います

http://opencv.jp/opencv-2.2/cpp/features2d_drawing_function_of_keypoints_and_matches.html

cv::drawMatches

  • void drawMatches(const Mat& img1, const vector<KeyPoint?>& keypoints1, const Mat& img2, const vector<KeyPoint?>& keypoints2, const vector<DMatch>& matches1to2, Mat& outImg, const Scalar& matchColor=Scalar::all(-1), const Scalar& singlePointColor?=Scalar::all(-1), const vector<char>& matchesMask=vector<char>(),

パラメータ

  • img1 – 1番目の入力画像.
  • keypoints1 – 1番目の入力画像から得られたキーポイント.
  • img2 – 2番目の入力画像.
  • keypoints2 – 2番目の入力画像から得られたキーポイント.
  • matches – 1番目と2番目の画像間のマッチ. つまり, keypoints1[i] は,点 keypoints2[matches[i]] に対応します.
  • outImg – 出力画像.出力画像に何が描画されるかは, flags の値に依存します. 後述の,取り得る flags のビット値を参照してください.
  • matchColor – マッチの色(線分と,それで接続されるキーポイント). matchColor==Scalar::all(-1) の場合,ランダムに色が生成されます.
  • singlePointColor? – シングルキーポイント,つまり,マッチを持たないキーポイントの色(円). singlePointColor?==Scalar::all(-1) の場合,ランダムに色が生成されます.
  • matchesMask – どのマッチが描画されるかを指定するマスク.これが空の場合は,すべてのマッチが描画されます.
  • flags – flags の各ビットは,描画のプロパティを設定します. 取り得る flags ビット値は, DrawMatchesFlags? で定義されます.以下を参照してください.
    struct DrawMatchesFlags
    {
        enum{ DEFAULT = 0, // 出力画像行列が作成 (Mat::create) されます.
                           // つまり,出力画像の元のメモリ領域が新たに再利用される可能性があります.
                           // 2 つの入力画像,マッチ,シングルキーポイントが描画されます.
                           // 各キーポイントに対しては,中心点のみが描画されます
                           // (キーポイントのサイズと方向を表す周囲の円は描画されません).
              DRAW_OVER_OUTIMG = 1, // 出力画像行列が作成 (Mat::create) されません.
                           // 既存の出力画像上に,マッチが描画されます.
              NOT_DRAW_SINGLE_POINTS = 2, // シングルキーポイントは描画されません.
              DRAW_RICH_KEYPOINTS = 4 // 各キーポイントに対して,そのサイズと方向を表す
                           // 周囲の円が描画されます.
            };
    };

関連

  • DMatch (OpenCvSharp.CPlusPlus.DMatch?)