- Introduzione e panoramica
- Installazione su Windows (binari precostruiti)
- Scaricare OpenCV e Python
- Installazione delle dipendenze del modulo
- Installazione del modulo Python-OpenCV
- Installazione su Linux (compilazione dai sorgenti)
- Scaricare OpenCV
- Installazione delle dipendenze di compilazione
- Compilazione e installazione di OpenCV
- Verificare l’installazione
- Problemi di compilazione di Linux
- Undefined AV_CODEC_ID_... in ffmpeg_codecs.hpp
Introduzione e panoramica
Questo documento contiene le istruzioni per installare e migrare all’ultima versione di OpenCV (versione 3) e ai binding Python. Oltre ad alcune modifiche alle API, ci sono anche modifiche all’interfaccia Python (ad esempio la rimozione di cv2.cv
) che possono richiedere modifiche al codice esistente per funzionare con la nuova versione del modulo cv2
. Dopo l’installazione, vedi la pagina successiva, Migrazione & Modifiche, per i dettagli riguardanti le modifiche al modulo e per un aiuto nella migrazione del codice Python esistente alla nuova versione.
Questa pagina copre l’installazione di OpenCV 3 su Windows (usando binari precompilati) e Linux (compilato dai sorgenti), inclusa l’interfaccia Python (il modulo cv2
). OpenCV può essere scaricato dal sito ufficiale di OpenCV. Si noti che questa guida è scritta sulla base di OpenCV versione 3.1.0. Dopo l’installazione, si raccomanda di controllare la versione di OpenCV che Python sta usando:
import cv2print cv2.__version__# Should print 3.0.0-rc1 or newer.
Nota che sebbene OpenCV 3 sia l’ultima versione, per convenzione, il modulo si chiama ancora cv2
.
Installazione su Windows (binari precostruiti)
Utilizzare i binari precostruiti è il modo più veloce per ottenere un ambiente Python OpenCV attivo e funzionante su Windows. Attualmente, solo la versione Python 2 del modulo cv2
è costruita e inclusa nell’ultima versione di Windows. Il supporto per Python 3 (così come l’aggiunta di altre caratteristiche/moduli non standard), richiede la compilazione dai sorgenti – vedi la documentazione ufficiale di OpenCV per i dettagli.
Scaricare OpenCV e Python
Per iniziare, scarica OpenCV per Windows (versione 3.1, opencv-3.1.0.exe
), ed estrailo in una directory a tua scelta. La build per Windows include sia un modulo a 32-bit che a 64-bit per Python 2.7.
Prima di continuare, assicuratevi di avere un’installazione funzionante di Python 2.7, che può essere scaricata dal sito di Python. Questa guida è stata testata usando Python 2.7.9 (x86 installer / x64 installer). Quando si installa, si raccomanda di permettere al programma di installazione di aggiungere Python alla variabile d’ambiente PATH
, in modo da poter eseguire python
e pip
da un prompt dei comandi.
Installazione delle dipendenze del modulo
Il modulo Python OpenCV cv2
richiede sia lo stack NumPy
che SciPy
. Per ottenerlo, assicurati prima di tutto di avere un ambiente python
funzionante, e di avere pip
installato (se no, usa i link qui sopra, e assicurati che la cartella Python sia nella tua variabile PATH
).
Christoph Gohlke attualmente fornisce alcuni pacchetti Python precostruiti (non ufficiali) per Windows, inclusi NumPy e SciPy. Scarica le ultime versioni stabili di NumPy e SciPy, e installale chiamando pip install .whl
da un prompt dei comandi. Nota che dovresti scaricare la versione corrispondente al tuo ambiente Python (2.7 in questo caso) e alla lunghezza della parola. Per esempio, su sistemi/interpreti a 32 bit:
pip install numpy-1.9.2+mkl-cp27-none-win32.whlpip install scipy-0.15.1-cp27-none-win32.whl
E per sistemi/interpreti a 64 bit:
pip install numpy-1.9.2+mkl-cp27-none-win_amd64.whlpip install scipy-0.15.1-cp27-none-win_amd64.whl
Dopo l’installazione, dovresti essere in grado di eseguire import numpy
e import scipy
da un interprete Python per verificare che i moduli siano stati installati correttamente. Puoi controllare quali versioni di NumPy e SciPy sono installate da numpy.__version__
e scipy.__version__
, rispettivamente.
Installazione del modulo Python-OpenCV
Infine, dobbiamo copiare il modulo OpenCV nei pacchetti Python locali. Nei file estratti da opencv-3.0.0-rc1.exe
, vai alla cartella opencv\build\python.7\
, e apri la cartella x86\
(per 32-bit) o x64\
(per 64-bit). In ciascuna, ci sarà un file cv2.pyd
.
Copia cv2.pyd
direttamente nella directory Lib\site-packages\
della tua installazione di Python. Per la maggior parte degli utenti, questa si trova in:
C:\Python27\Lib\site-packages
Infine, assicurati che i file .dll di OpenCV siano da qualche parte nella %PATH%
del tuo sistema, specialmente il file opencv_ffmpeg310.dll
(o opencv_ffmpeg310_64.dll
per i sistemi a 64 bit) necessario per caricare i file video.
Continua nella sezione Verifica dell’installazione per assicurarti che tutto sia stato installato correttamente e che la nuova versione di OpenCV venga usata. Assicuratevi anche di controllare la pagina successiva, Migrazione & Modifiche, per i dettagli sulle modifiche al modulo e l’aggiornamento del codice esistente.
Installazione su Linux (compilazione dai sorgenti)
Anche se questa guida è scritta per Ubuntu 12.04/14.04 e altre varianti (ad esempio Xubuntu/Lubuntu/Kubuntu), il processo dovrebbe essere in gran parte lo stesso su altre versioni, così come su distribuzioni Linux simili a Debian. Presta attenzione all’output di ogni comando per assicurarti che tutto abbia funzionato correttamente, e se ci sono problemi durante il processo di compilazione, vedi il fondo di questo documento per possibili mitigazioni
Scaricare OpenCV
Per iniziare, scarica OpenCV per Linux (versione 3.1.0, opencv-3.1.0.zip
), ed estrailo in una directory di tua scelta (per esempio ~/opencv-src
). Create una cartella build
all’interno della cartella in cui è stato estratto l’archivio (la cartella contenente il file CMakeLists.txt
), e aprite lì una sessione di terminale. Per esempio:
# Assuming the files were extracted to ~/opencv-src/...cd ~/opencv-srcmkdir buildcd build
Esegui tutti i seguenti comandi dalla sottocartella build
stessa, così i file compilati saranno messi lì.
Installazione delle dipendenze di compilazione
Per compilare OpenCV, dobbiamo assicurarci che le dipendenze richieste siano disponibili, inclusi gli stessi strumenti di compilazione. Possiamo ottenere quelle necessarie usando apt
su Ubuntu, ma prima, assicurati che la lista dei pacchetti sia aggiornata eseguendo apt-get update
. Successivamente, esegui i seguenti comandi per ottenere i pacchetti richiesti (vedi sotto per una lista di una riga di tutti):
sudo apt-get install cmake build-essential pkg-configsudo apt-get install libgtk2.0-dev libtbb-devsudo apt-get install python-dev python-numpy python-scipysudo apt-get install libjasper-dev libjpeg-dev libpng-dev libtiff-dev sudo apt-get install libavcodec-dev libavutil-dev libavformat-dev libswscale-devsudo apt-get install libdc1394-22-dev libv4l-dev
In linea singola:
sudo apt-get install cmake build-essential pkg-config libgtk2.0-dev libtbb-dev python-dev python-numpy python-scipy libjasper-dev libjpeg-dev libpng-dev libtiff-dev libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libdc1394-22-dev libv4l-dev
Nota che per moduli/caratteristiche OpenCV addizionali (per esempio supporto GPU/CUDA, o modulo Python 3), dovrai scaricare anche i rispettivi pacchetti di sviluppo/SDK per quelle librerie. Le dipendenze elencate sopra coprono solo la compilazione di OpenCV stesso e del modulo Python 2.7 cv2
.
Compilazione e installazione di OpenCV
Ora che abbiamo le dipendenze di compilazione richieste, esegui cmake
(di nuovo, nella directory build/
che abbiamo creato) per generare il Makefile per compilare OpenCV:
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
Se ci sono errori, assicurati di aver scaricato tutti i pacchetti richiesti – l’output dovrebbe aiutare a rintracciare cosa manca. Per assicurarti che il modulo Python sarà compilato, dovresti vedere python2
nella lista dei moduli configurati dopo aver eseguito cmake
:
-- Linker flags (Release):-- Linker flags (Debug):-- Precompiled headers: YES---- OpenCV modules:-- To be built: hal core flann imgproc ml python2
Se non vedi il modulo python2
elencato, nella lista “To be built”, controlla di aver installato i pacchetti di sviluppo Python appropriati, rimuovi tutti i file dalla cartella build/
, e prova ad eseguire nuovamente il comando cmake
.
Ora, possiamo costruire OpenCV (e il modulo Python) usando make
, e installarlo sul nostro sistema:
makesudo make install
Assicurati che la compilazione abbia avuto successo dopo aver chiamato make
, e controlla l’output prima di installare. Se ti imbatti in problemi/errori di compilazione, assicurati di nuovo di avere tutte le dipendenze e i file header richiesti sul tuo sistema. Se ci sono effettivamente problemi di compilazione con OpenCV stesso, vedi la sezione Linux Build Issues qui sotto per alcuni possibili workaround.
Installando OpenCV 3.0-rc1 su Ubuntu 12.04, mi sono imbattuto in errori di compilazione riguardanti alcune voci mancanti del codec #define
. Come accennato, i passi per farlo sono dettagliati qui sotto, se dovessi incorrere nello stesso problema (il problema dovrebbe essere risolto nella versione 3.1.0 e superiore). Ubuntu 14.04 e superiori dovrebbero compilare con successo senza richiedere alcuna modifica.
Se la compilazione ha avuto successo, ma non puoi import cv2
da una shell Python dopo aver eseguito make install
, puoi installare il modulo manualmente copiando il file cv2.so
che abbiamo appena costruito nella cartella build/lib/
in /usr/local/lib/python2.7/dist-packages/
. Dalla cartella build/
, questo può essere fatto da:
sudo cp lib/cv2.so /usr/local/lib/python2.7/dist-packages/
Dopo questo passo, il modulo cv2
è installato, e può ora essere importato dal vostro ambiente Python. Continua nella sezione Verifica dell’installazione per assicurarti che tutto sia stato installato correttamente e, cosa più importante, che la versione corretta di OpenCV sia usata da Python. Puoi anche controllare la prossima pagina, Migrazione & Modifiche, per i dettagli sulle modifiche al modulo cv2
, e quali modifiche devono essere fatte al codice esistente per funzionare con il modulo aggiornato.
Verificare l’installazione
Come detto in precedenza, potete verificare che il modulo cv2
sia stato installato correttamente eseguendo quanto segue in una shell Python:
import cv2print cv2.__version__
Se viene stampata la stringa della versione corretta (3.0.0-rc1
o più recente se avete usato una versione più recente), a questo punto tutto è installato correttamente!
Nota che ci sono alcuni importanti cambiamenti alla gerarchia del modulo cv2
stesso, e i programmi Python scritti con OpenCV 2.4.x in mente potrebbero non funzionare più correttamente. Vedi la prossima sezione, Migrazione &Cambiamenti per i dettagli sui cambiamenti, e come modificare i programmi per affrontare i cambiamenti.
Problemi di compilazione di Linux
In alcuni sistemi potresti incorrere in problemi durante la compilazione di OpenCV stesso, a seconda di quali pacchetti sono disponibili. Se sono disponibili i file header appropriati, ma sorgono ancora problemi di compilazione, prova a vedere se ci sono dei workaround qui sotto per il problema.
Undefined AV_CODEC_ID_...
in ffmpeg_codecs.hpp
Se ti imbatti in un problema in cui gli errori di compilazione sono causati da certi codec non definiti, puoi scaricare una versione più recente di ffmpeg_codecs.hpp
da qui, e sostituirla nel codice sorgente che hai scaricato/estratto nella cartella modules/videoio/src/
.
In alternativa, puoi dichiararli manualmente modificando il file ffmpeg_codecs.hpp
stesso aggiungendo la voce codec mancante per H263I
, e rinominando WNV
in WNV1
. Puoi vedere quali modifiche devono essere fatte visualizzando questo commit dal progetto GitHub di OpenCV.
Una volta che il file è aggiornato, puoi richiamare make
dalla cartella build/
, e OpenCV dovrebbe finire di compilare senza errori ora.