【问题标题】:What are KeyPoint and MatchDpoint in OpenCV in JavaJava中OpenCV中的KeyPoint和MatchDpoint是什么
【发布时间】:2016-07-03 12:10:30
【问题描述】:

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

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

我写信是为了看看我对 KeyPoint 的解释是否有效。请验证这一点。

2-什么是 Dmatch match.trainIdx?我的意思是 trainIdx 是什么?

和平

【问题讨论】:

    标签: java opencv match vision keypoint


    【解决方案1】:

    KeyPoint 存储显着点描述。它存储 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
    它由 DescriptorMatcher 实现(match、knnmatch、radiusmatch 函数)返回。您将矩阵 queryDescriptors 和 trainDescriptors 传递给这些函数之一。
    trainIdx 是 trainDescriptors 中最接近 queryDescriptors 中给定描述符的行索引。

    我建议阅读 C++ 的原始 OpenCV 描述和示例,Java 仅通过 JNI 提供到 C++ 功能的映射。

    【讨论】:

    • 嘿,我只是有一个小问题,找不到答案,但不值得单独提出一个问题:Mat.cols() 和 Mat.width() 有什么区别
    猜你喜欢
    • 2013-08-01
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多