J'utilise OpenCV v4.20 et PyCharm IDE. Je veux utiliser l'algorithme SIFT. Mais j'obtiens cette erreur. J'ai cherché des solutions à cette erreur sur Internet mais aucune d'elles ne m'a aidé. Connaissez-vous la solution de cette erreur? (Avec pip, je peux installer au moins la version 3.4.2.16 d'OpenCV)
Voici mon erreur:
Traceback (dernier appel le plus récent): Fichier "C: /Users/HP/PycharmProjects/features/featuredetect.py", ligne 7, dans sift = cv.xfeatures2d_SIFT.create ()
cv2.error: OpenCV (4.2.0) C:\projects\opencv-python\opencv_contrib\modules\xfeatures2d\src\sift.cpp: 1210: erreur: (-213: La fonction/fonctionnalité n'est pas implémentée) Cet algorithme est breveté et exclu de cette configuration; Définissez l'option OPENCV_ENABLE_NONFREE CMake et reconstruisez la bibliothèque dans la fonction 'cv :: xfeatures2d :: SIFT :: create'
Voici mon code:
import cv2 as cv
image = cv.imread("the_book_thief.jpg")
gray_image = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
sift = cv.xfeatures2d_SIFT.create()
keyPoints = sift.detect(image,None)
output = cv.drawKeypoints(image,keyPoints,None)
cv.imshow("FEATURES DETECTED",output)
cv.imshow("NORMAL",image)
cv.waitKey(0)
cv.destroyAllWindows()
J'ai eu le même problème auparavant. J'avais essayé toutes les méthodes mais finalement une méthode très simple fonctionnait pour moi à laquelle beaucoup ont déjà répondu. Cependant, il y a un petit changement dans mon approche.
Étape 1:
Désinstaller la bibliothèque opencv précédemment installée
pip uninstall opencv-python
Étape 2:
Installez la bibliothèque de contrib opencv en raison d'un problème de copyright. Ici, nous utilisons la version 3.4.2.17
pip install opencv-contrib-python==3.4.2.17
erreur d'installation de la bibliothèque contrib opencv
La figure ci-dessus montre l'erreur de version 3.4.2.16
Introuvable. Par conséquent, j'ai essayé avec la version 3.4.2.17
. Si cette version ne fonctionne pas, essayez d'autres versions de 3.4.x.
Étape 3:
Puis exécutez ce qui suit
import cv2 sift = cv2.xfeatures2d.SIFT_create()
C'est tout. Ça marche pour moi. J'espère que cela fonctionne aussi pour vous.