gpt4 book ai didi

JavaCV:如何获取描述符的二进制字符串

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

我正在尝试使用 JavaCV 实现使用 ORB 算法的图像识别。根据一些论文[1] , [2] ,ORB关键点描述符是一个二进制字符串。那么,如何在获取图像的关键点后得到这个二进制字符串呢?

这是我获取关键点的代码

KeyPoint keypoints = new KeyPoint();
ORB orb = new ORB(MAX_FEATURES, (float) 1.2, 8, 1, 0, 2, 5, 31);
orb.detect(originalImg, greyScaleImg, keypoints);

获取描述符的代码应该是:

DescriptorExtractor descriptor = orb.getDescriptorExtractor();
descriptor.compute(greyScaleImg, keypoints, descriptors);

因为没有关于描述符函数的文档,也没有 javadocs。我不知道什么类型应该是参数描述符以及如何打印二进制字符串。需要一些帮助,谢谢。

最佳答案

descriptors 参数应该是一个二维矩阵 Mat(来自 org.opencv.core.Mat):

  • 维度:NxD,其中N = 关键点数(行)和D = 描述符维度 = 32(列),
  • 类型:CV_8UC1,即每个矩阵值是一个字节(又名 8 位单 channel 矩阵)。

每个描述符都可以通过将 32 个字节连接成一个由 256 位组成的字节数组来表示,这就是论文将其称为二进制字符串的原因。

有关详细信息,请参阅 ORBDescriptorExtractorTest.java

关于JavaCV:如何获取描述符的二进制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12690747/

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