🤖 AIによる機械翻訳(非公式) — これは OpenCV 4.13.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。

クラス DescriptorMatcher

  • 既知の直接サブクラス:
    BFMatcher, FlannBasedMatcher

    public class DescriptorMatcher
    extends Algorithm
    Abstract base class for matching keypoint descriptors. It has two groups of match methods: for matching descriptors of an image with another image or with an image set.
    • コンストラクタの要約

      コンストラクタ
      Modifier Constructor Description
      protected DescriptorMatcher​(long addr)  
    • メソッドの要約

      すべてのメソッド 静的メソッド インスタンスメソッド 具象メソッド
      Modifier and Type Method Description
      static DescriptorMatcher __fromPtr__​(long addr)  
      void add​(java.util.List<Mat> descriptors)
      Adds descriptors to train a CPU(trainDescCollectionis) or GPU(utrainDescCollectionis) descriptor collection.
      void clear()
      Clears the train descriptor collections.
      DescriptorMatcher clone()
      Clones the matcher.
      DescriptorMatcher clone​(boolean emptyTrainData)
      Clones the matcher.
      static DescriptorMatcher create​(int matcherType)  
      static DescriptorMatcher create​(java.lang.String descriptorMatcherType)
      Creates a descriptor matcher of a given type with the default parameters (using default constructor).
      boolean empty()
      Returns true if there are no train descriptors in the both collections.
      java.util.List<Mat> getTrainDescriptors()
      Returns a constant link to the train descriptor collection trainDescCollection .
      boolean isMaskSupported()
      Returns true if the descriptor matcher supports masking permissible matches.
      void knnMatch​(Mat queryDescriptors, java.util.List<MatOfDMatch> matches, int k)  
      void knnMatch​(Mat queryDescriptors, java.util.List<MatOfDMatch> matches, int k, java.util.List<Mat> masks)  
      void knnMatch​(Mat queryDescriptors, java.util.List<MatOfDMatch> matches, int k, java.util.List<Mat> masks, boolean compactResult)  
      void knnMatch​(Mat queryDescriptors, Mat trainDescriptors, java.util.List<MatOfDMatch> matches, int k)
      Finds the k best matches for each descriptor from a query set.
      void knnMatch​(Mat queryDescriptors, Mat trainDescriptors, java.util.List<MatOfDMatch> matches, int k, Mat mask)
      Finds the k best matches for each descriptor from a query set.
      void knnMatch​(Mat queryDescriptors, Mat trainDescriptors, java.util.List<MatOfDMatch> matches, int k, Mat mask, boolean compactResult)
      Finds the k best matches for each descriptor from a query set.
      void match​(Mat queryDescriptors, MatOfDMatch matches)  
      void match​(Mat queryDescriptors, MatOfDMatch matches, java.util.List<Mat> masks)  
      void match​(Mat queryDescriptors, Mat trainDescriptors, MatOfDMatch matches)
      Finds the best match for each descriptor from a query set.
      void match​(Mat queryDescriptors, Mat trainDescriptors, MatOfDMatch matches, Mat mask)
      Finds the best match for each descriptor from a query set.
      void radiusMatch​(Mat queryDescriptors, java.util.List<MatOfDMatch> matches, float maxDistance)  
      void radiusMatch​(Mat queryDescriptors, java.util.List<MatOfDMatch> matches, float maxDistance, java.util.List<Mat> masks)  
      void radiusMatch​(Mat queryDescriptors, java.util.List<MatOfDMatch> matches, float maxDistance, java.util.List<Mat> masks, boolean compactResult)  
      void radiusMatch​(Mat queryDescriptors, Mat trainDescriptors, java.util.List<MatOfDMatch> matches, float maxDistance)
      For each query descriptor, finds the training descriptors not farther than the specified distance.
      void radiusMatch​(Mat queryDescriptors, Mat trainDescriptors, java.util.List<MatOfDMatch> matches, float maxDistance, Mat mask)
      For each query descriptor, finds the training descriptors not farther than the specified distance.
      void radiusMatch​(Mat queryDescriptors, Mat trainDescriptors, java.util.List<MatOfDMatch> matches, float maxDistance, Mat mask, boolean compactResult)
      For each query descriptor, finds the training descriptors not farther than the specified distance.
      void read​(java.lang.String fileName)  
      void train()
      Trains a descriptor matcher Trains a descriptor matcher (for example, the flann index).
      void write​(java.lang.String fileName)  
      • クラス java.lang.Object から継承したメソッド

        equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • コンストラクタの詳細

      • DescriptorMatcher

        protected DescriptorMatcher​(long addr)
    • メソッドの詳細

      • add

        public void add​(java.util.List<Mat> descriptors)
        Adds descriptors to train a CPU(trainDescCollectionis) or GPU(utrainDescCollectionis) descriptor collection. If the collection is not empty, the new descriptors are added to existing train descriptors.
        引数:
        descriptors - 追加する記述子。各 descriptors[i] は同一の学習画像から得られた記述子のセットである。
      • getTrainDescriptors

        public java.util.List<Mat> getTrainDescriptors()
        Returns a constant link to the train descriptor collection trainDescCollection .
        戻り値:
        自動生成
      • clear

        public void clear()
        Clears the train descriptor collections.
        オーバーライド:
        クラス Algorithm 内の clear
      • empty

        public boolean empty()
        Returns true if there are no train descriptors in the both collections.
        オーバーライド:
        クラス Algorithm 内の empty
        戻り値:
        自動生成
      • isMaskSupported

        public boolean isMaskSupported()
        Returns true if the descriptor matcher supports masking permissible matches.
        戻り値:
        自動生成
      • train

        public void train()
        Trains a descriptor matcher Trains a descriptor matcher (for example, the flann index). In all methods to match, the method train() is run every time before matching. Some descriptor matchers (for example, BruteForceMatcher) have an empty implementation of this method. Other matchers really train their inner structures (for example, FlannBasedMatcher trains flann::Index ).
      • match

        public void match​(Mat queryDescriptors,
                          Mat trainDescriptors,
                          MatOfDMatch matches,
                          Mat mask)
        Finds the best match for each descriptor from a query set.
        引数:
        queryDescriptors - 記述子のクエリセット。
        trainDescriptors - 記述子の学習セット。このセットは、クラスオブジェクトに格納されている学習用記述子コレクションには追加されない。
        matches - マッチング結果。クエリ記述子が mask によってマスクされている場合、その記述子に対するマッチは追加されない。そのため、matches のサイズはクエリ記述子の数より小さくなることがある。
        mask - 入力クエリと学習用記述子行列との間で許容されるマッチを指定するマスク。このメソッドの第1のバリアントでは、学習用記述子が入力引数として渡される。第2のバリアントでは、DescriptorMatcher::add によって設定された学習用記述子コレクションが使用される。どのクエリ記述子と学習用記述子をマッチング可能とするかを指定するために、省略可能なマスク(または複数のマスク)を渡すことができる。具体的には、queryDescriptors[i] は mask.at<uchar>(i,j) が非ゼロの場合にのみ trainDescriptors[j] とマッチング可能である。
      • match

        public void match​(Mat queryDescriptors,
                          Mat trainDescriptors,
                          MatOfDMatch matches)
        Finds the best match for each descriptor from a query set.
        引数:
        queryDescriptors - 記述子のクエリセット。
        trainDescriptors - 記述子の学習セット。このセットは、クラスオブジェクトに格納されている学習用記述子コレクションには追加されない。
        matches - マッチング結果。クエリ記述子が mask によってマスクされている場合、その記述子に対するマッチは追加されない。そのため、matches のサイズはクエリ記述子の数より小さくなることがある。descriptors. このメソッドの第1のバリアントでは、学習用記述子が入力引数として渡される。第2のバリアントでは、DescriptorMatcher::add によって設定された学習用記述子コレクションが使用される。どのクエリ記述子と学習用記述子をマッチング可能とするかを指定するために、省略可能なマスク(または複数のマスク)を渡すことができる。具体的には、queryDescriptors[i] は mask.at<uchar>(i,j) が非ゼロの場合にのみ trainDescriptors[j] とマッチング可能である。
      • knnMatch

        public void knnMatch​(Mat queryDescriptors,
                             Mat trainDescriptors,
                             java.util.List<MatOfDMatch> matches,
                             int k,
                             Mat mask,
                             boolean compactResult)
        Finds the k best matches for each descriptor from a query set.
        引数:
        queryDescriptors - 記述子のクエリセット。
        trainDescriptors - 記述子の学習セット。このセットは、クラスオブジェクトに格納されている学習用記述子コレクションには追加されない。
        mask - 入力クエリと学習用記述子行列との間で許容されるマッチを指定するマスク。
        matches - マッチング結果。各 matches[i] は、同一のクエリ記述子に対する k 個以下のマッチである。
        k - 各クエリ記述子について見つける最良マッチの数。クエリ記述子が全体で k 個未満のマッチしか持たない場合はそれより少なくなる。
        compactResult - マスク(または複数のマスク)が空でない場合に使用される引数。compactResult が false の場合、matches ベクトルは queryDescriptors の行数と同じサイズになる。compactResult が true の場合、matches ベクトルには完全にマスクアウトされたクエリ記述子に対するマッチは含まれない。これらの拡張バリアントである DescriptorMatcher::match メソッドは、各クエリ記述子に対して複数の最良マッチを見つける。マッチは距離の昇順で返される。クエリ記述子と学習用記述子の詳細については DescriptorMatcher::match を参照。
      • knnMatch

        public void knnMatch​(Mat queryDescriptors,
                             Mat trainDescriptors,
                             java.util.List<MatOfDMatch> matches,
                             int k,
                             Mat mask)
        Finds the k best matches for each descriptor from a query set.
        引数:
        queryDescriptors - 記述子のクエリセット。
        trainDescriptors - 記述子の学習セット。このセットは、クラスオブジェクトに格納されている学習用記述子コレクションには追加されない。
        mask - 入力クエリと学習用記述子行列との間で許容されるマッチを指定するマスク。
        matches - マッチング結果。各 matches[i] は、同一のクエリ記述子に対する k 個以下のマッチである。
        k - 各クエリ記述子について見つける最良マッチの数。クエリ記述子が全体で k 個未満のマッチしか持たない場合はそれより少なくなる。false の場合、matches ベクトルは queryDescriptors の行数と同じサイズになる。compactResult が true の場合、matches ベクトルには完全にマスクアウトされたクエリ記述子に対するマッチは含まれない。これらの拡張バリアントである DescriptorMatcher::match メソッドは、各クエリ記述子に対して複数の最良マッチを見つける。マッチは距離の昇順で返される。クエリ記述子と学習用記述子の詳細については DescriptorMatcher::match を参照。
      • knnMatch

        public void knnMatch​(Mat queryDescriptors,
                             Mat trainDescriptors,
                             java.util.List<MatOfDMatch> matches,
                             int k)
        Finds the k best matches for each descriptor from a query set.
        引数:
        queryDescriptors - 記述子のクエリセット。
        trainDescriptors - 記述子の学習セット。このセットは、クラスオブジェクトに格納されている学習用記述子コレクションには追加されない。descriptors.
        matches - マッチング結果。各 matches[i] は、同一のクエリ記述子に対する k 個以下のマッチである。
        k - 各クエリ記述子について見つける最良マッチの数。クエリ記述子が全体で k 個未満のマッチしか持たない場合はそれより少なくなる。false の場合、matches ベクトルは queryDescriptors の行数と同じサイズになる。compactResult が true の場合、matches ベクトルには完全にマスクアウトされたクエリ記述子に対するマッチは含まれない。これらの拡張バリアントである DescriptorMatcher::match メソッドは、各クエリ記述子に対して複数の最良マッチを見つける。マッチは距離の昇順で返される。クエリ記述子と学習用記述子の詳細については DescriptorMatcher::match を参照。
      • radiusMatch

        public void radiusMatch​(Mat queryDescriptors,
                                Mat trainDescriptors,
                                java.util.List<MatOfDMatch> matches,
                                float maxDistance,
                                Mat mask,
                                boolean compactResult)
        For each query descriptor, finds the training descriptors not farther than the specified distance.
        引数:
        queryDescriptors - 記述子のクエリセット。
        trainDescriptors - 記述子の学習セット。このセットは、クラスオブジェクトに格納されている学習用記述子コレクションには追加されない。
        matches - 見つかったマッチ。
        compactResult - マスク(または複数のマスク)が空でない場合に使用される引数。compactResult が false の場合、matches ベクトルは queryDescriptors の行数と同じサイズになる。compactResult が true の場合、matches ベクトルには完全にマスクアウトされたクエリ記述子に対するマッチは含まれない。
        maxDistance - マッチした記述子間の距離に対するしきい値。ここでの距離は計量上の距離(例: ハミング距離)を意味し、座標間の距離(ピクセル単位で測定されるもの)ではない!
        mask - 入力クエリ記述子と学習記述子の行列の間で許容されるマッチを指定するマスク。各クエリ記述子について、本メソッドはクエリ記述子と学習記述子の距離が maxDistance 以下となる学習記述子を探す。見つかったマッチは距離の昇順で返される。
      • radiusMatch

        public void radiusMatch​(Mat queryDescriptors,
                                Mat trainDescriptors,
                                java.util.List<MatOfDMatch> matches,
                                float maxDistance,
                                Mat mask)
        For each query descriptor, finds the training descriptors not farther than the specified distance.
        引数:
        queryDescriptors - 記述子のクエリセット。
        trainDescriptors - 記述子の学習セット。このセットは、クラスオブジェクトに格納されている学習用記述子コレクションには追加されない。
        matches - 見つかったマッチ。false の場合、matches ベクトルは queryDescriptors の行数と同じサイズになる。compactResult が true の場合、matches ベクトルには完全にマスクアウトされたクエリ記述子に対するマッチは含まれない。
        maxDistance - マッチした記述子間の距離に対するしきい値。ここでの距離は計量上の距離(例: ハミング距離)を意味し、座標間の距離(ピクセル単位で測定されるもの)ではない!
        mask - 入力クエリ記述子と学習記述子の行列の間で許容されるマッチを指定するマスク。各クエリ記述子について、本メソッドはクエリ記述子と学習記述子の距離が maxDistance 以下となる学習記述子を探す。見つかったマッチは距離の昇順で返される。
      • radiusMatch

        public void radiusMatch​(Mat queryDescriptors,
                                Mat trainDescriptors,
                                java.util.List<MatOfDMatch> matches,
                                float maxDistance)
        For each query descriptor, finds the training descriptors not farther than the specified distance.
        引数:
        queryDescriptors - 記述子のクエリセット。
        trainDescriptors - 記述子の学習セット。このセットは、クラスオブジェクトに格納されている学習用記述子コレクションには追加されない。
        matches - 見つかったマッチ。false の場合、matches ベクトルは queryDescriptors の行数と同じサイズになる。compactResult が true の場合、matches ベクトルには完全にマスクアウトされたクエリ記述子に対するマッチは含まれない。
        maxDistance - マッチした記述子間の距離に対するしきい値。ここでの距離は計量上の距離(例: ハミング距離)を意味し、座標間の距離(ピクセル単位で測定されるもの)ではない!記述子。各クエリ記述子について、本メソッドはクエリ記述子と学習記述子の距離が maxDistance 以下となる学習記述子を探す。見つかったマッチは距離の昇順で返される。
      • match

        public void match​(Mat queryDescriptors,
                          MatOfDMatch matches,
                          java.util.List<Mat> masks)
        引数:
        queryDescriptors - 記述子のクエリセット。
        matches - マッチング結果。クエリ記述子が mask によってマスクされている場合、その記述子に対するマッチは追加されない。そのため、matches のサイズはクエリ記述子の数より小さくなることがある。
        masks - マスクの集合。各 masks[i] は、入力クエリ記述子と i 番目の画像 trainDescCollection[i] に格納された学習記述子の間で許容されるマッチを指定する。
      • match

        public void match​(Mat queryDescriptors,
                          MatOfDMatch matches)
        引数:
        queryDescriptors - 記述子のクエリセット。
        matches - マッチ。あるクエリ記述子が mask でマスクアウトされている場合、その記述子に対するマッチは追加されない。したがって、matches のサイズはクエリ記述子の数より小さくなることがある。記述子と i 番目の画像 trainDescCollection[i] に格納された学習記述子。
      • knnMatch

        public void knnMatch​(Mat queryDescriptors,
                             java.util.List<MatOfDMatch> matches,
                             int k,
                             java.util.List<Mat> masks,
                             boolean compactResult)
        引数:
        queryDescriptors - 記述子のクエリセット。
        matches - マッチング結果。各 matches[i] は、同一のクエリ記述子に対する k 個以下のマッチである。
        k - 各クエリ記述子について見つける最良マッチの数。クエリ記述子が全体で k 個未満のマッチしか持たない場合はそれより少なくなる。
        masks - マスクの集合。各 masks[i] は、入力クエリ記述子と i 番目の画像 trainDescCollection[i] に格納された学習記述子の間で許容されるマッチを指定する。
        compactResult - マスク(または複数のマスク)が空でない場合に使用される引数。compactResult が false の場合、matches ベクトルは queryDescriptors の行数と同じサイズになる。compactResult が true の場合、matches ベクトルには完全にマスクアウトされたクエリ記述子に対するマッチは含まれない。
      • knnMatch

        public void knnMatch​(Mat queryDescriptors,
                             java.util.List<MatOfDMatch> matches,
                             int k,
                             java.util.List<Mat> masks)
        引数:
        queryDescriptors - 記述子のクエリセット。
        matches - マッチング結果。各 matches[i] は、同一のクエリ記述子に対する k 個以下のマッチである。
        k - 各クエリ記述子について見つける最良マッチの数。クエリ記述子が全体で k 個未満のマッチしか持たない場合はそれより少なくなる。
        masks - マスクの集合。各 masks[i] は、入力クエリ記述子と i 番目の画像 trainDescCollection[i] に格納された学習記述子の間で許容されるマッチを指定する。false の場合、matches ベクトルは queryDescriptors の行数と同じサイズになる。compactResult が true の場合、matches ベクトルには完全にマスクアウトされたクエリ記述子に対するマッチは含まれない。
      • knnMatch

        public void knnMatch​(Mat queryDescriptors,
                             java.util.List<MatOfDMatch> matches,
                             int k)
        引数:
        queryDescriptors - 記述子のクエリセット。
        matches - マッチング結果。各 matches[i] は、同一のクエリ記述子に対する k 個以下のマッチである。
        k - 各クエリ記述子について見つかる上位マッチの数。クエリ記述子の取り得るマッチが合計で k 個未満の場合はそれより少なくなる。記述子と i 番目の画像 trainDescCollection[i] に格納された学習記述子。false の場合、matches ベクトルは queryDescriptors の行数と同じサイズになる。compactResult が true の場合、matches ベクトルには完全にマスクアウトされたクエリ記述子に対するマッチは含まれない。
      • radiusMatch

        public void radiusMatch​(Mat queryDescriptors,
                                java.util.List<MatOfDMatch> matches,
                                float maxDistance,
                                java.util.List<Mat> masks,
                                boolean compactResult)
        引数:
        queryDescriptors - 記述子のクエリセット。
        matches - 見つかったマッチ。
        maxDistance - マッチした記述子間の距離に対するしきい値。ここでの距離は計量上の距離(例: ハミング距離)を意味し、座標間の距離(ピクセル単位で測定されるもの)ではない!
        masks - マスクの集合。各 masks[i] は、入力クエリ記述子と i 番目の画像 trainDescCollection[i] に格納された学習記述子の間で許容されるマッチを指定する。
        compactResult - マスク(または複数のマスク)が空でない場合に使用される引数。compactResult が false の場合、matches ベクトルは queryDescriptors の行数と同じサイズになる。compactResult が true の場合、matches ベクトルには完全にマスクアウトされたクエリ記述子に対するマッチは含まれない。
      • radiusMatch

        public void radiusMatch​(Mat queryDescriptors,
                                java.util.List<MatOfDMatch> matches,
                                float maxDistance,
                                java.util.List<Mat> masks)
        引数:
        queryDescriptors - 記述子のクエリセット。
        matches - 見つかったマッチ。
        maxDistance - マッチした記述子間の距離に対するしきい値。ここでの距離は計量上の距離(例: ハミング距離)を意味し、座標間の距離(ピクセル単位で測定されるもの)ではない!
        masks - マスクの集合。各 masks[i] は、入力クエリ記述子と i 番目の画像 trainDescCollection[i] に格納された学習記述子の間で許容されるマッチを指定する。false の場合、matches ベクトルは queryDescriptors の行数と同じサイズになる。compactResult が true の場合、matches ベクトルには完全にマスクアウトされたクエリ記述子に対するマッチは含まれない。
      • radiusMatch

        public void radiusMatch​(Mat queryDescriptors,
                                java.util.List<MatOfDMatch> matches,
                                float maxDistance)
        引数:
        queryDescriptors - 記述子のクエリセット。
        matches - 見つかったマッチ。
        maxDistance - マッチした記述子間の距離に対するしきい値。ここでの距離は計量上の距離(例: ハミング距離)を意味し、座標間の距離(ピクセル単位で測定されるもの)ではない!記述子と i 番目の画像 trainDescCollection[i] に格納された学習記述子。false の場合、matches ベクトルは queryDescriptors の行数と同じサイズになる。compactResult が true の場合、matches ベクトルには完全にマスクアウトされたクエリ記述子に対するマッチは含まれない。
      • write

        public void write​(java.lang.String fileName)
      • read

        public void read​(java.lang.String fileName)
      • clone

        public DescriptorMatcher clone​(boolean emptyTrainData)
        Clones the matcher.
        引数:
        emptyTrainData - emptyTrainData が false の場合、本メソッドはオブジェクトのディープコピーを作成する。すなわち、引数と学習データの両方をコピーする。emptyTrainData が true の場合、現在の引数を持つが学習データは空であるオブジェクトのコピーを作成する。
        戻り値:
        自動生成
      • clone

        public DescriptorMatcher clone()
        Clones the matcher. that is, copies both parameters and train data. If emptyTrainData is true, the method creates an object copy with the current parameters but with empty train data.
        オーバーライド:
        clone in class java.lang.Object
        戻り値:
        自動生成
      • create

        public static DescriptorMatcher create​(java.lang.String descriptorMatcherType)
        Creates a descriptor matcher of a given type with the default parameters (using default constructor).
        引数:
        descriptorMatcherType - Descriptor matcher type. Now the following matcher types are supported:
        • BruteForce (L2 を使用する)
        • BruteForce-L1
        • BruteForce-Hamming
        • BruteForce-Hamming(2)
        • FlannBased
        戻り値:
        自動生成