Android OpenCV: rysowanie dopasowań z feature2d
Nie mogę uruchomić tej funkcji. Zasadniczo robię wykrywanie funkcji i dopasowywanie do obrazu odniesienia. Chcę nałożyć pasujące funkcje na mój obraz wejściowy. Oto mój kod:
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;
}
Jest to funkcja2d.drawMatches, która jest właśnie problemem. Zgodnie z błędem systemu Android, który dostałem, niektóre wymiary nie są wyrównane. Prawdę mówiąc, nie jestem nawet pewien, jakdrawMatches
ma działać na Androidzie, ponieważ nigdzie nie ma dokumentacji.
To, co chcę zrobić, to narysować dopasowania na górze inputImage. stałamFeature2d.drawKeypoints
do pracy, ale nie jestem pewien, jak chciałbym przejść do konwersjiMatOfDMatch matches
do aMatOfKeypoint
obiekt. Nie jestem nawet pewien, czy tak działa MatOfDMatch - czy nie ma w nim pewnej asocjatywności odpowiadającej deskryptorom?
Przepraszam, że jestem wszędzie, mam bardzo ciężko z OpenCV z Androidem. Dokumentacja C ++ jest dobra, ale niewiele jest w niej materiałów na Androida. Dzięki za pomoc!