在OpenCV 4.1.0中,无法解析DescriptorExtractor和FeatureDetector的导入。

5

正如标题中所提到的,这两个导入在opencv 4.1.0中无法解决。

import org.opencv.features2d.DescriptorExtractor;

import org.opencv.features2d.FeatureDetector;

这是代码:

这是代码:

FeatureDetector detector = FeatureDetector.create(FeatureDetector.ORB); 
DescriptorExtractor extractor = DescriptorExtractor.create(DescriptorExtractor.ORB);

它们已被弃用:https://iopencv.com/docs/cpp-python/3.4.1/javadoc/index.html?deprecated-list.html

但是现在没有关于我应该使用什么的文档。

2个回答

0

如果还有人卡在这个错误上,问题是opencv4.1.0(以及更高版本)没有这些类。

降级到opencv3.4.9对我有用!


SIFT曾经拥有专利(于2020年到期),这要求其实现必须存在于“contrib”模块集中。这些模块通常不以二进制形式分发。 - Christoph Rackwitz

0
SIFT专利已过期,并且默认情况下已包含在OpenCV v4.4中,因此没有降级的理由。 只需将您的代码行更改为(Java)。
    MatOfKeyPoint keypoints = new MatOfKeyPoint();
    SIFT detector = SIFT.create();
    detector.detect(gray, keypoints, mask);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接