2016-12-08 5 views
0

Ich bin neu in CV, ich habe viele Bilder und ich möchte ein Bild mit den anderen in meinem Bilder-Dataset vergleichen.So entscheide ich mich, alle Bilder zu indizieren, nachdem ich ein wenig suchen und ORG, SIFT, SURF I war auf der Suche for.But ich weiß nicht, wie die charakteristischen Punkt und Beschreiber zu verwenden, unten ist mein Code:Wie sollte ich OpenCV 3.1 ORB in Python3 verwenden?

import cv2 

nfeatures = 1 
cv2.ocl.setUseOpenCL(False) 
img = cv2.imread('images/forest-copyright.jpg', 0) 
img2 = cv2.imread('images/forest-high.jpg', 0) 

def kpdes(img): 
    orb = cv2.ORB_create(nfeatures=nfeatures) 
    kp = orb.detect(img, None) 
    kp,des = orb.compute(img, kp) 
    print(kp,des) 

kpdes(img) 
kpdes(img2) 

Einige Teile Ausgabe:

[KeyPoint 0000000002A2EF00] [ [252 48 188 124 41 124 81 184 161 112 93 224 225 78 67]]

Wie nehme ich den Deskriptor wie „[[252 48 188 124 41 124 81 184 161 63 167 25 87 63 74 91 192 213 237 0 60 79 243 0 219 235 112 93 224 225 78 67] ]",was heißt das? Wie kann ich sie in Elasticsearch speichern und abfragen? Ich fand den Deskriptor geändert, wenn ich nfeatures erhöhen. Ja, es gibt so viele Fragen für mich, auf Helfer warten!

Antwort

0

Here is the implementation for ORB

Sie verwenden die keypoints und Deskriptoren zum Beispiel zwei Bilder miteinander übereinstimmen. Dies kann durch Finden der Übereinstimmungen zwischen ihnen geschehen: cv2.findHomography

Hinweis, wenn Sie versuchen, Bilder zu stitchen, sollten Sie sicherstellen, dass sie gute Übereinstimmungen sind, indem Sie dem niedrigen Verhältnis folgen.

Sie können auch verwenden, um festzustellen, ob ein Bild in einem anderen Bild ist, wie zum Beispiel ein Kissen in einem Bild auf einem Bett in einem anderen Bild. Hier ist ein Link zu einem OpenCV-Python-Tutorial dazu: Feature Matching