He resumido mi solución ahora completamente funcional, OpenCV-Python: cómo instalar el paquete OpenCV-Python en Anaconda (Windows) . Sin embargo, he copiado y pegado los bits importantes en esta publicación.
Al momento de escribir estaba usando Windows 8.1, máquina de 64 bits, Anaconda / Python 2.x. (vea las notas a continuación, esto también funciona para Windows 10 y probablemente también para Python 3.x)
NOTA 1: como se mencionó mencionado por @great_raisin (gracias) en la sección de comentarios, sin embargo, esta solución también parece funcionar para Windows 10.
NOTA 2: esto probablemente también funcionará para Anaconda / Python 3.x. Si está utilizando Windows 10 y Anaconda / Python 3.x, y esta solución funciona, agregue un comentario a continuación. ¡Gracias! (Actualización: tomando nota del comentario "Trabajando en Windows 10")
NOTA 3: dependiendo de si está utilizando Python 2.xo 3.x, simplemente ajuste la print
declaración en consecuencia en los fragmentos de código. es decir, en Python 3.x sería print("hello")
, y en Python 2.x sería print "hello"
.
TL; DR
Para usar OpenCV completamente con Anaconda (y Spyder IDE), necesitamos:
- Descargue el paquete OpenCV del sitio oficial de OpenCV
- Copie y pegue
cv2.pyd
en el directorio de paquetes de sitio de Anaconda.
- Configure las variables ambientales del usuario para que Anaconda sepa dónde encontrar la utilidad FFMPEG.
- Haga algunas pruebas para confirmar que OpenCV y FFMPEG ahora están funcionando.
(Siga leyendo para obtener instrucciones detalladas ...)
Requisito previo
Instala Anaconda
Anaconda es esencialmente un IDE de Python bien empaquetado que se envía con toneladas de paquetes útiles, como NumPy, Pandas, IPython Notebook, etc. Parece que se recomienda en todas partes de la comunidad científica. Echa un vistazo a Anaconda para instalarlo.
Instale OpenCV-Python en Anaconda
Nota prudente: Originalmente probé la instalación del paquete binstar.org OpenCV, como se sugirió. Sin embargo, ese método no incluye el códec FFMPEG, es decir, puede usar OpenCV, pero no podrá procesar videos.
Las siguientes instrucciones me funcionan están inspiradas en este video de YouTube de OpenCV . Hasta ahora lo tengo funcionando tanto en mi computadora de escritorio como en mi computadora portátil, tanto en máquinas de 64 bits como en Windows 8.1.
Descargar el paquete OpenCV
En primer lugar, vaya al sitio oficial de OpenCV para descargar el paquete completo de OpenCV. Elija una versión que le guste (2.xo 3.x). Estoy en Python 2.xy OpenCV 3.x, principalmente porque así es como se configuran / basan los Tutoriales de OpenCV-Python .
En mi caso, extraje el paquete (esencialmente una carpeta) directamente a mi unidad C ( C:\opencv
).
Copie y pegue el archivo cv2.pyd
El directorio de paquetes de sitio de Anaconda (por ejemplo, C:\Users\Johnny\Anaconda\Lib\site-packages
en mi caso) contiene los paquetes de Python que puede importar. Nuestro objetivo es copiar y pegar el cv2.pyd
archivo en este directorio (para que podamos usarlo import cv2
en nuestros códigos Python).
Para hacer esto, copie el cv2.pyd
archivo ...
Desde este directorio OpenCV (la parte inicial puede ser ligeramente diferente en su máquina). Para Python 3.x, supongo, simplemente cambie el 2.x
a en 3.x
consecuencia.
# Python 2.7 and 32-bit machine:
C:\opencv\build\python\2.7\x84
# Python 2.7 and 64-bit machine:
C:\opencv\build\python\2.7\x64
Para este directorio de Anaconda (la parte inicial puede ser ligeramente diferente en su máquina):
C:\Users\Johnny\Anaconda\Lib\site-packages
Después de realizar este paso, ahora podremos usarlo import cv2
en código Python. PERO, todavía tenemos que hacer un poco más de trabajo para que FFMPEG (códec de video) funcione (para permitirnos hacer cosas como procesar videos).
Establecer variables ambientales
Haga clic con el botón derecho en "Mi PC" (o "Esta PC" en Windows 8.1) → haga clic con el botón izquierdo en Propiedades → haga clic con el botón izquierdo en la pestaña "Avanzado" → haga clic con el botón izquierdo en "Variables de entorno ...".
Agregue una nueva variable de usuario para apuntar a OpenCV (x86 para el sistema de 32 bits o x64 para el sistema de 64 bits). Actualmente estoy en una máquina de 64 bits.
| 32-bit or 64 bit machine? | Variable | Value |
|---------------------------|--------------|--------------------------------------|
| 32-bit | `OPENCV_DIR` | `C:\opencv\build\x86\vc12` |
| 64-bit | `OPENCV_DIR` | `C:\opencv\build\x64\vc12` |
Anexar %OPENCV_DIR%\bin
a la variable de usuario PATH
.
Por ejemplo, mi PATH
variable de usuario se ve así ...
Antes de:
C:\Users\Johnny\Anaconda;C:\Users\Johnny\Anaconda\Scripts
Después:
C:\Users\Johnny\Anaconda;C:\Users\Johnny\Anaconda\Scripts;%OPENCV_DIR%\bin
¡Esto es todo! ¡FFMPEG está listo para ser usado!
Prueba para confirmar
Necesitamos probar si ahora podemos hacer esto en Anaconda (a través de Spyder IDE):
- Importar paquete OpenCV
- Use la utilidad FFMPEG (para leer / escribir / procesar videos)
Prueba 1: ¿podemos importar OpenCV?
Para confirmar que Anaconda ahora puede importar el paquete OpenCV-Python (es decir, cv2
), emítalos en la consola IPython:
import cv2
print cv2.__version__
Si el paquete cv2
se importa OK sin errores, y la cv2
versión se imprime, ¡entonces todos estamos bien! Aquí hay una instantánea:
(fuente: mathalope.co.uk )
Prueba 2: ¿Podemos usar el códec FFMPEG?
Coloque un input_video.mp4
archivo de video de muestra en un directorio. Queremos probar si podemos:
- lea este
.mp4
archivo de video y
- escribir un nuevo archivo de video (puede ser
.avi
o .mp4
etc.)
Para hacer esto, necesitamos tener un código de prueba de Python, llámelo test.py
. Colóquelo en el mismo directorio que el input_video.mp4
archivo de muestra .
Esto es lo que test.py
puede parecer (he enumerado los códigos de las versiones más nuevas y más antiguas aquí, ¡háganos saber cuál funciona / no funciona para usted!).
(Versión más nueva...)
import cv2
cap = cv2.VideoCapture("input_video.mp4")
print cap.isOpened() # True = read video successfully. False - fail to read video.
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter("output_video.avi", fourcc, 20.0, (640, 360))
print out.isOpened() # True = write out video successfully. False - fail to write out video.
cap.release()
out.release()
(O la versión anterior ...)
import cv2
cv2.VideoCapture("input_video.mp4")
print cv2.isOpened() # True = read video successfully. False - fail to read video.
fourcc = cv2.cv.CV_FOURCC(*'XVID')
out = cv2.VideoWriter("output_video.avi",fourcc, 20.0, (640,360))
print out.isOpened() # True = write out video successfully. False - fail to write out video.
cap.release()
out.release()
Esta prueba es MUY IMPORTANTE. Si desea procesar archivos de video, debe asegurarse de que Anaconda / Spyder IDE pueda usar el FFMPEG (códec de video). Me llevó días hacerlo funcionar. ¡Pero espero que te lleve mucho menos tiempo! :)
Nota: Otro consejo muy importante al usar el IDE de Anaconda Spyder. ¡Asegúrese de revisar el directorio de trabajo actual (CWD)!
Conclusión
Para usar OpenCV completamente con Anaconda (y Spyder IDE), necesitamos:
- Descargue el paquete OpenCV del sitio oficial de OpenCV
- Copie y pegue
cv2.pyd
en el directorio de paquetes de sitio de Anaconda.
- Configure las variables ambientales del usuario para que Anaconda sepa dónde encontrar la utilidad FFMPEG.
- Haga algunas pruebas para confirmar que OpenCV y FFMPEG ahora están funcionando.
¡Buena suerte!