web-dev-qa-db-fra.com

sift = cv2.xfeatures2d.SIFT_create () ne fonctionne pas alors que contrib est installé

Donc j'essaye d'utiliser:

sift = cv2.xfeatures2d.SIFT_create()

et il vient avec cette erreur:

cv2.error: OpenCV(3.4.3) C:\projects\opencv-python\opencv_contrib\modules\xfeatures2d\src\sift.cpp:1207: error: (-213:The function/feature is not implemented) 
This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake 
option and rebuild the library in function 'cv::xfeatures2d::SIFT::create'

J'utilise Python 3.5.0 et opencv(3.4.3) et j'utilise simplement inactif. Cela s'est produit après que j'ai essayé d'installer TensorFlow et que j'ai essayé de regarder autour de moi et que j'ai installé opencv-contrib-python, mais je reçois toujours la même erreur. Merci d'avance et je m'excuse si je n'ai pas inclus assez d'informations

7
rhonda.rooster

J'ai eu le même problème. Je change d’autres versions d’opencv-python et d’opencv-contrib-python et je résous ce problème. Voici la version historique d’opencv-python. 

https://pypi.org/project/opencv-python/#history , et j'utilise le code suivant:

pip install opencv-python == 3.4.2.16

pip install opencv-contrib-python == 3.4.2.16

Modifier

Pour l'utilisateur Anaconda, cela suffit au lieu de pip 

conda install -c menpo opencv

cela installera cv2 3.4.1 et tout ce dont vous avez besoin pour exécuter SIFT

bonne chance ~

28
J.Zhao

Cela peut être dû à une incompatibilité entre les versions d'opencv et d'opencv-contrib version . Si vous avez installé opencv à partir du source à l'aide de CMake et que la version source est différente de la version d'opencv-contrib-python, désinstallez l'opencv en cours. contrib-python and do pip install opencv-contrib-python==<version of the source>.X ou une autre version compatible . Une des configurations que j'ai sous exécution est open source (3.2), opencv-python (3.4.0.14) et opencv-contrib-python (3.4.2.17)

0
ben