gpt4 book ai didi

java - Java 中 OpenCV 中的 KeyPoint 和 MatchDpoint 是什么

转载 作者:太空宇宙 更新时间:2023-11-03 22:26:57 25 4
gpt4 key购买 nike

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

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

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

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

和平

最佳答案

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 中的给定描述符。

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

关于java - Java 中 OpenCV 中的 KeyPoint 和 MatchDpoint 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36055573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com