Hallo,
ich entwickle gerade eine Android-App, welche der Objekterkennung dienen soll. Hierzu möchte ich verschiedene Bilder untersuchen, welche diverse Objekte beinhalten und jeweils die Deskriptoren der erkannten Objekte in einer externen Datenbank speichern. Bei jedem Laden der App sollen dann automatisch die gespeicherten Deskriptoren geladen und für das Matching mit dem über die Kamera aktuell fokussierten Bild herangezogen werden. Als IDE verwende ich Android Studio 2.1.2 und das OpenCV4Android SDK für das Auffinden der Keypoints und das erstellen der Deskriptoren. Zwei Bilder in der App zu Laden und miteinander zu matchen funktioniert schon, allerdings hänge ich an dem Punkt fest, wo es darum geht, die Deskriptoren in der Datenbank zu speichern. Das Problem ist hierbei, dass die Deskriptoren vom Typ Mat sind und ich nicht wirklich weiß, wie ich eine sinnvolle, brauchbare Umwandlung anstelle um hier ein Speichern in der Datenbank zu ermöglichen.
MatOfKeyPoint keyPoints = new MatOfKeyPoint();
MatOfKeyPoint keyPointsToMatch = new MatOfKeyPoint();
FeatureDetector detector = FeatureDetector.create(detectorID);
detector.detect(greyImage, keyPoints);
detector.detect(greyImageToMatch, keyPointsToMatch);
DescriptorExtractor dExtractor = DescriptorExtractor.create(descriptorID);
Mat descriptors = new Mat();
Mat descriptorsToMatch = new Mat();
dExtractor.compute(greyImage, keyPoints, descriptors);
dExtractor.compute(greyImageToMatch, keyPointsToMatch, descriptorsToMatch);
Alles anzeigen
Bei Stackoverflow gibt es bereits einige Beiträge dazu, welche mir allesamt allerdings auch leider nicht wirklich weiter geholfen haben. Vielleicht hat ja hier jemand eine Idee oder bereits schon einmal etwas ähnliches umgesetzt.