Ho riassunto la mia soluzione ora perfettamente funzionante, OpenCV-Python - Come installare il pacchetto OpenCV-Python su Anaconda (Windows) . Tuttavia ho copiato e incollato i pezzi importanti in questo post.
Al momento in cui scrivevo stavo usando Windows 8.1, macchina a 64 bit, Anaconda / Python 2.x. (vedi le note di seguito: funziona anche con Windows 10 e probabilmente anche Python 3.x).
NOTA 1: come menzionato da @great_raisin (grazie) nella sezione commenti, tuttavia, questa soluzione sembra funzionare anche per Windows 10.
NOTA 2: questo probabilmente funzionerà anche per Anaconda / Python 3.x. Se stai utilizzando Windows 10 e Anaconda / Python 3.x e questa soluzione funziona, aggiungi un commento qui sotto. Grazie! (Aggiornamento: annotando dal commento "Lavorare su Windows 10")
NOTA 3: a seconda che tu stia usando Python 2.xo 3.x, regola semplicemente l' print
istruzione di conseguenza negli snippet di codice. cioè in Python 3.x sarebbe print("hello")
, e in Python 2.x sarebbe print "hello"
.
TL; DR
Per utilizzare OpenCV completamente con Anaconda (e Spyder IDE), dobbiamo:
- Scarica il pacchetto OpenCV dal sito ufficiale OpenCV
- Copia e incolla la
cv2.pyd
directory dei pacchetti del sito Anaconda.
- Imposta le variabili ambientali dell'utente in modo che Anaconda sappia dove trovare l'utilità FFMPEG.
- Fai alcuni test per confermare che OpenCV e FFMPEG ora funzionano.
(Continua a leggere per le istruzioni dettagliate ...)
necessario
Installa Anaconda
Anaconda è essenzialmente un IDE Python ben confezionato che viene spedito con tonnellate di pacchetti utili, come NumPy, Pandas, Notebook IPython, ecc. Sembra essere raccomandato ovunque nella comunità scientifica. Dai un'occhiata ad Anaconda per installarlo.
Installa OpenCV-Python su Anaconda
Nota prudente: inizialmente ho provato a installare il pacchetto OpenCV binstar.org, come suggerito. Questo metodo tuttavia non include il codec FFMPEG, ovvero potresti essere in grado di utilizzare OpenCV, ma non sarai in grado di elaborare i video.
Le seguenti istruzioni per me sono ispirate a questo video YouTube di OpenCV . Finora ho funzionato sia sul mio desktop che sul mio laptop, sia su macchine a 64 bit che su Windows 8.1.
Scarica il pacchetto OpenCV
Innanzitutto, vai al sito ufficiale OpenCV per scaricare il pacchetto OpenCV completo. Scegli una versione che ti piace (2.xo 3.x). Sono su Python 2.xe OpenCV 3.x, principalmente perché questo è il modo in cui i tutorial di OpenCV-Python sono impostati / basati.
Nel mio caso, ho estratto il pacchetto (essenzialmente una cartella) direttamente sul mio disco C ( C:\opencv
).
Copia e incolla il file cv2.pyd
La directory Anaconda Site-pacchetti (ad esempio C:\Users\Johnny\Anaconda\Lib\site-packages
nel mio caso) contiene i pacchetti Python che è possibile importare. Il nostro obiettivo è copiare e incollare il cv2.pyd
file in questa directory (in modo da poter usare il import cv2
nei nostri codici Python.).
Per fare questo, copia il cv2.pyd
file ...
Da questa directory OpenCV (la parte iniziale potrebbe essere leggermente diversa sul tuo computer). Per Python 3.x, suppongo, basta cambiare 2.x
di 3.x
conseguenza.
# 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
A questa directory Anaconda (la parte iniziale potrebbe essere leggermente diversa sul tuo computer):
C:\Users\Johnny\Anaconda\Lib\site-packages
Dopo aver eseguito questo passaggio, saremo ora in grado di utilizzare import cv2
nel codice Python. MA, dobbiamo ancora fare un po 'più di lavoro per far funzionare FFMPEG (codec video) (per permetterci di fare cose come l'elaborazione di video).
Imposta variabili ambientali
Fare clic con il tasto destro del mouse su "Risorse del computer" (o "Questo PC" su Windows 8.1) → fare clic con il tasto sinistro del mouse su Proprietà → fare clic con il tasto sinistro del mouse sulla scheda "Avanzate" → fare clic con il tasto sinistro del mouse su "Variabili d'ambiente ...".
Aggiungi una nuova variabile utente per puntare a OpenCV (o x86 per sistema a 32 bit o x64 per sistema a 64 bit). Sono attualmente su una macchina a 64 bit.
| 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` |
Aggiungere %OPENCV_DIR%\bin
alla variabile utente PATH
.
Ad esempio, il mio PATH
variabile utente è simile a questa ...
Prima:
C:\Users\Johnny\Anaconda;C:\Users\Johnny\Anaconda\Scripts
Dopo:
C:\Users\Johnny\Anaconda;C:\Users\Johnny\Anaconda\Scripts;%OPENCV_DIR%\bin
Ecco fatto! FFMPEG è pronto per essere utilizzato!
Prova per confermare
Dobbiamo testare se ora possiamo farlo in Anaconda (tramite IDE Spyder):
- Importa pacchetto OpenCV
- Utilizzare l'utilità FFMPEG (per leggere / scrivere / elaborare video)
Test 1: possiamo importare OpenCV?
Per confermare che Anaconda è ora in grado di importare il pacchetto OpenCV-Python (ovvero, cv2
), emettere questi nella console IPython:
import cv2
print cv2.__version__
Se il pacchetto cv2
viene importato OK senza errori e la cv2
versione viene stampata, allora siamo tutti a posto! Ecco un'istantanea:
(fonte: mathalope.co.uk )
Test 2: possiamo usare il codec FFMPEG?
Inserire un input_video.mp4
file video di esempio in una directory. Vogliamo testare se possiamo:
- leggere questo
.mp4
file video e
- scrivere un nuovo file video (può essere
.avi
o .mp4
ecc.)
Per fare questo dobbiamo avere un codice Python di prova, chiamarlo test.py
. Inserirlo nella stessa directory del input_video.mp4
file di esempio .
Questo è ciò che test.py
potrebbe apparire (ho elencato qui sia i codici delle versioni più recenti che quelli più vecchi - facci sapere quale funziona o non funziona per te!).
(Versione più nuova...)
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 versione precedente ...)
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()
Questo test è MOLTO IMPORTANTE. Se desideri elaborare file video, devi assicurarti che Anaconda / Spyder IDE possa utilizzare FFMPEG (codec video). Mi ci sono voluti giorni per farlo funzionare. Ma spero che ci vorrebbe molto meno tempo! :)
Nota: un altro suggerimento molto importante quando si utilizza l'IDE Anaconda Spyder. Assicurati di controllare l'attuale directory di lavoro (CWD) !!!
Conclusione
Per utilizzare OpenCV completamente con Anaconda (e Spyder IDE), dobbiamo:
- Scarica il pacchetto OpenCV dal sito ufficiale OpenCV
- Copia e incolla la
cv2.pyd
directory dei pacchetti del sito Anaconda.
- Imposta le variabili ambientali dell'utente in modo che Anaconda sappia dove trovare l'utilità FFMPEG.
- Fai alcuni test per confermare che OpenCV e FFMPEG ora funzionano.
In bocca al lupo!