Solución:
Hay una fuente de pip que lo hace muy fácil.
-
Si tiene otra versión de opencv-python instalada, use este comando para eliminarla y evitar conflictos:
pip uninstall opencv-python
-
Luego instale la versión contrib con esto:
pip install opencv-contrib-python
-
Uso de SIFT:
import cv2 sift = cv2.xfeatures2d.SIFT_create()
Para obtener información reciente sobre este tema (a septiembre de 2015), consulte esta página.
La mayor parte de la información sobre esta pregunta aquí es obsoleta.
Lo que dice pyimagesearch es que SURF / SIFT se movieron a opencv_contrib
debido a problemas de patentes.
Para la instalación también hay una bonita página que le dice cómo instalar opencv con opencv_contrib
y soporte de Python para que obtenga SURF / SIFT.
Observe que la API también cambió. Ahora es así:
sift = cv2.xfeatures2d.SIFT_create()
Antes de encontrar las páginas anteriores, también sufrí bastante. Pero las páginas enumeradas hacen un muy buen trabajo al ayudar con la instalación y explicar lo que está mal.
Para su información, a partir de la versión 3.0.0, SIFT y sus amigos están en un repositorio de contribuciones ubicado en https://github.com/Itseez/opencv_contrib y no están incluidos con opencv de forma predeterminada.