2017-07-27 6 views
-2

Je veux utiliser SIFT. Je l'ai déjà essayé ce code:Comment puis-je utiliser SIFT dans opencv 2.4

import cv2 
    import numpy as np 
    img = cv2.imread('1.jpg') 
    gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
    sift = cv2.xfeatures2d.SIFT_create() 
    kp = sift.detect(gray,None) 
    img=cv2.drawKeypoints(gray,kp,img) 
    cv2.imwrite('sift_keypoints.jpg',img) 

Mais je reçois cette erreur:

./sifttt.py: ligne 3: erreur de syntaxe près de jeton inattendu '(»

./sifttt.py: ligne 3: `img = cv2.imread ('1.jpg') »

Je ne sais pas si je besoin d'installer quelque chose ou si j'ai besoin de faire autre chose?

+0

L'erreur w.r.t. le code n'a pas de sens! Êtes-vous sûr que c'est le code? –

+0

Exécutez le code en tant que 'python sifttt.py', pour vérifier que vous utilisez l'interpréteur correct, juste au cas où. –

+0

Votre code fonctionne sur ma machine. Pas d'erreur. Les points SIFT sont détectés correctement. – Eskapp

Répondre

0

Il y a un problème dans votre code à la ligne numéro 5. Vous utilisez la version 2.4 d'opencv mais opencv 2.4 n'a pas de module xfeature2d ce module se trouve dans openv 3 in up check this out. Donc, pour utiliser Sift dans opencv 2.4, utilisez les didacticiels this et this.