Как заменить функцию FeatureDetector в новом OpenCV?



Я скачал пример кода Java OpenCV. В нескольких строках кода есть метод FeatureDetectore(), который компилятор считает устаревшим.



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


Итак, как я должен заменить эту часть кода? Есть ли для этого какая-то новая альтернатива?
или я могу продолжить использование устаревшей функции?

580   2  

2 ответов:

Вы можете продолжать с этим, и это будет работать. Устаревание означает, что есть новая рекомендуемая альтернатива, но старый код все равно будет работать. Новый способ сделать это-использовать FastFeatureDetector или AgastFeatureDetector в зависимости от вашего варианта использования. Я не знаком с OpenCV, поэтому, к сожалению, не могу рекомендовать, какая именно реализация вам нужна, вам нужно прочитать JavaDoc/другие документы и выяснить, какой из них подходит вашему коду.

Читая эту страницу документации , очевидно, что теперь мы непосредственно создаем экземпляр требуемого детектора, такого как:

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

Это почти то же самое для шара, просто измените класс:

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

Перед тем, как объявить устаревшим, мы должны были написать что-то похожее на (это старый класс):

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

Comments

    Ничего не найдено.