Java 需要什么MatOfMatch对象?

Java 需要什么MatOfMatch对象?,java,opencv,opencv3.0,Java,Opencv,Opencv3.0,我写了下面的代码来获得一个关于特征检测的感觉。 但我不明白的是,为什么我们需要MatOfMatch对象,它需要什么 代码 public static void main(String[] args) { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); Mat img_0 = Highgui.imread(PATH_0); Mat img_0_rev = Highgui.imread(PATH_1); Mat img_o

我写了下面的代码来获得一个关于特征检测的感觉。 但我不明白的是,为什么我们需要
MatOfMatch
对象,它需要什么

代码

public static void main(String[] args) {
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

    Mat img_0 = Highgui.imread(PATH_0);
    Mat img_0_rev = Highgui.imread(PATH_1);
    Mat img_output = new Mat();

    FeatureDetector fDetect = FeatureDetector.create(FeatureDetector.SIFT);

    MatOfKeyPoint mKeyPoints_0 = new MatOfKeyPoint();
    fDetect.detect(img_0, mKeyPoints_0);
    System.out.println("mKeyPoint_0: " + mKeyPoints_0.size());

    MatOfKeyPoint mKeyPoints_1 = new MatOfKeyPoint();
    fDetect.detect(img_0_rev, mKeyPoints_1);
    System.out.println("mKeyPoint_1: " + mKeyPoints_1.size());

    MatOfDMatch mDMatch = new MatOfDMatch();

    //Features2d.drawKeypoints(mKeyPoints_0, mKeyPoints_0, outImage, Scalar color, Features2d.DRAW_RICH_KEYPOINTS);
    Features2d.drawMatches(img_0, mKeyPoints_0, img_0_rev, mKeyPoints_1, mDMatch, img_output);

我并不完全熟悉JavaAPI,但我认为这个过程在任何语言中都是类似的

如果您只想检测功能(关键点),则不需要使用匹配项

但是,如果您想在两个图像之间匹配特征,那么还有一些事情要做

一般步骤如下:

  • 使用特征检测器检测图像上的特征(关键点)
  • 使用描述符提取器提取关键点的描述符
  • 使用描述符匹配器比较描述符以创建匹配(DMatch)
  • 找出你最好的比赛并画出来

  • 谢谢,我按照这些步骤完成了,但仍然有许多功能与其他功能错误匹配,我不知道如何更正…请您提供任何建议。谢谢…我的问题是: