我已经下载了Java OpenCV的示例代码。在代码的几行中,有FeatureDetectore()
方法,编译器称它已被弃用。
FeatureDetector detector = FeatureDetector.create(FeatureDetector.MSER);
detector.detect(mGrey, keypoint);
listpoint = keypoint.toList();
那么,我应该如何替换这部分代码呢?这有什么新的选择吗? 或者我可以继续使用已弃用的功能吗?
答案 0 :(得分:4)
您可以继续这样做,这将有效。弃用意味着有新的推荐替代方案,但当然旧代码仍然有效。这样做的新方法是使用FastFeatureDetector或AgastFeatureDetector,具体取决于您的使用案例。我不熟悉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);