web-dev-qa-db-de.com

sift = cv2.xfeatures2d.SIFT_create () funktioniert nicht, obwohl Contrib installiert ist

Also versuche ich zu verwenden:

sift = cv2.xfeatures2d.SIFT_create()

und es kommt mit diesem Fehler:

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'

Ich verwende Python 3.5.0 und opencv(3.4.3) und benutze nur Leerlauf. Dies geschah, nachdem ich versucht hatte, TensorFlow zu installieren, und ich habe versucht, sich umzusehen und opencv-contrib-python installiert zu haben, aber ich bekomme immer noch den gleichen Fehler. Vielen Dank im Voraus und ich entschuldige mich, wenn ich nicht genügend Informationen bereitgestellt habe

7
rhonda.rooster

Ich hatte das gleiche Problem. Ich ändere andere Versionen von opencv-python und opencv-contrib-python und löse dieses Problem. Hier ist die historische Version von opencv-python. 

https://pypi.org/project/opencv-python/#history und ich verwende den folgenden Code:

pip install opencv-python == 3.4.2.16

pip install opencv-contrib-python == 3.4.2.16

Bearbeiten

Für Anaconda User einfach nur Pip 

conda install -c menpo opencv

dadurch wird cv2 3.4.1 und alles, was Sie zum Ausführen von SIFT benötigen, installiert

viel Glück ~

28
J.Zhao

Möglicherweise liegt ein Konflikt zwischen der opencv-Version und der opencv-contrib-Version vor. Wenn Sie opencv mit CMake von der Quelle installiert haben und die Quellversion sich von der Version von opencv-contrib-python unterscheidet, deinstallieren Sie die aktuelle Version von opencv- contrib-python und do pip install opencv-contrib-python==<version of the source>.X oder eine andere kompatible Version ..__ Eine Version, die ich ausgeführt habe, ist opencv source (3.2), opencv-python (3.4.0.14) und opencv-contrib-python (3.4.2.17).

0
ben