Android OpenCV: рисование матчей с помощью feature2d
Я не могу заставить эту функцию работать. В основном я делаю обнаружение признаков и сопоставление с эталонным изображением. Я хочу наложить соответствующие элементы поверх моего входного изображения. Вот мой код:
public Mat startProcessing(Mat inputImage) {
Imgproc.cvtColor(inputImage, rgb, Imgproc.COLOR_GRAY2RGB);
myFeatures.detect(rgb, keypoints);
descriptorExtractor.compute(inputImage, keypoints, imageDescriptors);
descriptorMatcher.match(templateDescriptors, imageDescriptors, matches);
Features2d.drawMatches(rgb, keypoints, templateImage, templateKeypoints, matches, rgb);
Imgproc.cvtColor(rgb, outputImage, Imgproc.COLOR_RGB2RGBA);
return outputImage;
}
Это Features2d.drawMatches, которая является конкретно проблемой. Согласно полученной мной ошибке Android, некоторые измерения не совпадают. По правде говоря, я даже не знаю, какdrawMatches
должен работать на Android, потому что нигде нет документации.
То, что я хочу сделать, это нарисовать совпадения поверх inputImage. Я получилFeature2d.drawKeypoints
работать, но я не уверен, как бы я пошел на преобразованиеMatOfDMatch matches
кMatOfKeypoint
объект. Кроме того, я даже не уверен, что так работает MatOfDMatch - не имеет ли он внутри себя ассоциативности, соответствующей дескрипторам?
Извините, что повсюду, мне очень тяжело использовать OpenCV с Android. Документация на C ++ хороша, но мало что есть в материалах для Android. Спасибо за любую помощь!