2016-07-14 5 views
1

Ich versuche, die STAR-Detektor in OpenCV 3, zu verwenden, und es wirft einen Fehler:Wie benutzt man den STAR-Detektor in openCV 3 mit Python?

import cv2 

image = cv2.imread('grand_central_terminal.png') 
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 

star = cv2.xfeatures2d.StarDetector_create() 
(kps, descs) = star.detectAndCompute(gray, None) 
print("# of keypoints: {}".format(len(kps))) # should be 459 

Der Fehler es gibt, ist:

Traceback (most recent call last): 
    File "quiz.py", line 8, in <module> 
    (kps, descs) = star.detectAndCompute(gray, None) 
cv2.error: /home/travis/miniconda/conda-bld/work/opencv-3.1.0/modules/features2d/src/feature2d.cpp:144: error: (-213) in function detectAndCompute 

Hier ist das Bild: grand_central_terminal.png

läuft auf Ubuntu 16.04LTS 64-Bit mit Python 3.5 und Anaconda.

Antwort

1

Der Fehlercode -213, den Sie empfangen, zeigt an, dass die Methode detectAndCompute für den STAR-Detektor nicht implementiert ist. Das liegt daran, dass STAR nur ein Feature-Detektor ist, kein Kombinationsdetektor und Deskriptor. Ihr Code kann durch den Aufruf der detect Methode anstelle festgesetzt:

kps = star.detect(gray) 
+0

Ich sehe, so wie die star.detectAndCompute funktionieren soll? – wordsforthewise

+1

'star.detectAndCompute' soll nicht funktionieren. Es scheint wie ein unglücklicher Zufall, dass die Methode überhaupt existiert. Einige Dinge im 'xfeatures2d' Modul sind sowohl Detektoren als auch Deskriptoren (wie ORB oder SIFT), und diese verwenden' detectAndCompute'. STAR ist nur ein Feature-Detektor, berechnet aber keine Deskriptoren für diese Schlüsselpunkte. – Aurelius

Verwandte Themen