有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java中OpenCV中的关键点和匹配点是什么

亲爱的 1-我知道Point类是关于两个通道整数值坐标(点):与MatOfPoint类似,MatOfPoint是整数值的向量。 KeyPoint类也一样吗? 我知道这是一门包含要点的课程。将它们视为双通道浮点值坐标(点)是真的吗?请看下面几行:

KeyPoint test;
test= new float[]{x,y};

我写它们是为了看看我对关键点的解释是否有效。请验证这一点

2-什么是匹配。trainIdx?我是说什么是trainIdx

和平


共 (1) 个答案

  1. # 1 楼答案

    关键点存储显著点描述。它存储x、y、角度、大小等。请参见http://docs.opencv.org/java/2.4.2/org/opencv/features2d/KeyPoint.html
    在Java中手动初始化它的正确方法是:

    KeyPoint test = new KeyPoint(x, y, size);
    

    或获取图像的关键点列表:

    Mat srcImage;
    MatOfKeyPoint keypoints;
    Mat descriptors;
    DescriptorExtractor descExctractor = DescriptorExtractor.create(DescriptorExtractor.SIFT);
    descExctractor.compute(srcImage, keypoints, descExctractor);
    KeyPoint[] keyPointsArray = keypoints.toArray()
    

    DMatch包含匹配关键点描述符的描述。见http://docs.opencv.org/java/2.4.2/org/opencv/features2d/DMatch.html
    它由描述符实现(match、knnmatch、radiusmatch函数)返回。将矩阵QueryDescriptor和TrainDescriptor传递给其中一个函数
    trainIdx是TrainDescriptor中最接近queryDescriptors中给定描述符的行索引

    <>我建议阅读原始OpenCV描述和C++实例,java只提供JNI到C++功能的映射。p>