亲爱的1-我知道点类是关于两个通道的整数值坐标(点):类似于MatOfPoint是整数点的向量。KeyPoint类也是这样吗?我知道它是一个包含显着points.Is的类,把它们看作是两个通道浮点值坐标(点)?请看下面的几行:
KeyPoint test;
test= new float[]{x,y};我写信给他们是为了看看我对KeyPoint的解释是否有效。请确认一下。
什么是Dmatch match.trainIdx?我是说trainIdx是什么?
和平
发布于 2016-03-17 10:25:12
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对匹配的keypoint描述符进行描述。请参阅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++功能的映射。
https://stackoverflow.com/questions/36055573
复制相似问题