Cette ligne:
sift = cv2.xfeatures2d.SIFT_create()
erreur de retour:
Traceback (most recent call last):
File "C:/Python27/openCVskrypty/GUI/SOLUTION2.py", line 11, in <module>
sift = cv2.xfeatures2d.SIFT_create()
AttributeError: 'module' object has no attribute 'xfeatures2d'
J'ai lu quelque chose à propos de cette erreur et cela apparaît dans OpenCV version 3.0. C'est assez étrange parce que j'ai la version 2.4.11.
Je vérifie dir (cv2) et je n'ai pas le module xfeatures2d. Quelqu'un sait-il pourquoi? Puis-je le télécharger séparément?
Merci pour l'aide comment résoudre ce problème.
Je pense que vous devriez plutôt installer opencv-contrib-python. Le module que vous utilisez n'est pas supporté par opencv-python. Voir opencv-contrib-python .
À installer:
pip install opencv-contrib-python
SIFT est un algorithme breveté, donc non disponible dans chaque version open-cv. Ce que vous pouvez faire, c’est installer opencv et sa partie contrib en même temps, c’est-à-dire
pip install opencv-python==3.3.0.10 opencv-contrib-python==3.3.0.10
SIFT a bien fonctionné pour moi sur les versions ci-dessus de opencv.
Le problème vient de votre version d'OpenCV. Vous dites que vous êtes sur la version 2.4.11 mais cette version d'OpenCV ne dispose pas de cette méthode.
Vous pouvez vérifier la documentation . Il a features2d
Considérant que OpenCV 3.0 fait.
Vous pouvez utiliser ceci à la place:
sift=cv2.SIFT()
Cette erreur peut également se produire dans OpenCV 3+ car elle est due à des versions incompatibles des packages OpenCV et OpenCV-Contrib.
J'avais OpenCV version 3.4.1 et OpenCV-Contrib version 3.4.0. J'ai essayé ce qui suit avec OpenCV-Contrib:
Désinstallez le paquet OpenCV-Contrib:
$ pip uninstall opencv-contrib-python
Puis installez le même à nouveau:
$ pip install opencv-contrib-python
Le pip récupère et installe automatiquement la dernière version compatible.
J'avais un problème similaire à celui que @srihegde a déclaré: vous pouvez essayer de désinstaller opencv-contrib-python package et de réinstaller. Vous pouvez également essayer de désinstaller opencv-python package si vous en avez un, car cela pourrait gâcher les packages.
Cela m'a aidé.
Désinstaller:
pip3 uninstall opencv-contrib-python
pip3 uninstall opencv-python
Et puis installez:
pip3 install opencv-contrib-python
pip3 install opencv-python