我应该如何替换新OpenCV中的FeatureDetector功能?

时间:2018-02-25 09:29:34

标签: java opencv replace deprecated feature-detection

我已经下载了Java OpenCV的示例代码。在代码的几行中,有FeatureDetectore()方法,编译器称它已被弃用。

    FeatureDetector detector = FeatureDetector.create(FeatureDetector.MSER);
    detector.detect(mGrey, keypoint);
    listpoint = keypoint.toList();

那么,我应该如何替换这部分代码呢?这有什么新的选择吗? 或者我可以继续使用已弃用的功能吗?

2 个答案:

答案 0 :(得分:4)

您可以继续这样做,这将有效。弃用意味着有新的推荐替代方案,但当然旧代码仍然有效。这样做的新方法是使用FastFeatureDetectorAgastFeatureDetector,具体取决于您的使用案例。我不熟悉OpenCV,所以不幸的是我无法推荐您需要的确切实现,您需要阅读JavaDoc /其他文档并找出适合您代码的文档。

答案 1 :(得分:0)

通过阅读此documentation page,很明显,现在我们直接实例化了所需的检测器,例如:

Mat mask = new Mat();
MatOfKeyPoint keypoints = new MatOfKeyPoint();
MSER detector = MSER.create();
detector.detect(imageMat, keypoints, mask);

与ORB完全一样,只需更改类:

Mat mask = new Mat();
MatOfKeyPoint keypoints = new MatOfKeyPoint();
ORB detector = ORB.create();
detector.detect(imageMat, keypoints, mask);

在弃用之前,我们必须编写类似于 (这是OLD类):

FeatureDetector _featureDetector = FeatureDetector.create(FeatureDetector.ORB);