Articles

OpenCV: Installare OpenCV-Python in Ubuntu

Obiettivi

In questo tutorial impareremo a configurare OpenCV-Python nel sistema Ubuntu. I seguenti passi sono testati per Ubuntu 16.04 e 18.04 (entrambi a 64 bit).

OpenCV-Python può essere installato in Ubuntu in due modi:

  • Installare da binari pre-costruiti disponibili nei repository Ubuntu
  • Compilare dal sorgente. In questa sezione, li vedremo entrambi.

Un’altra cosa importante sono le librerie aggiuntive richieste. OpenCV-Python richiede solo Numpy (oltre ad altre dipendenze, che vedremo più avanti). Ma in questo tutorial, usiamo anche Matplotlib per alcuni facili e piacevoli scopi di plotting (che sento molto meglio rispetto a OpenCV). Matplotlib è opzionale, ma altamente raccomandato. Allo stesso modo vedremo anche IPython, un terminale Python interattivo, che è anche altamente raccomandato.

Installare OpenCV-Python dai binari pre-costruiti

Questo metodo serve meglio quando si usa solo per programmare e sviluppare applicazioni OpenCV.

Installare il pacchetto python3-opencv con il seguente comando nel terminale (come utente root).

$ sudo apt-get install python3-opencv

Aprire Python IDLE (o IPython) e digitare i seguenti codici nel terminale Python.

import cv2 as cv
print(cv.__version__)

Se i risultati vengono stampati senza errori, complimenti! Avete installato OpenCV-Python con successo.

È abbastanza facile. Ma c’è un problema. I repository Apt potrebbero non contenere sempre l’ultima versione di OpenCV. Per esempio, al momento di scrivere questo tutorial, il repository di apt contiene la 2.4.8 mentre l’ultima versione di OpenCV è la 3.x. Per quanto riguarda le API di Python, l’ultima versione conterrà sempre un supporto migliore e le ultime correzioni di bug.

Quindi per ottenere gli ultimi codici sorgente la preferenza è il metodo successivo, cioè la compilazione da sorgente. Inoltre ad un certo punto, se volete contribuire ad OpenCV, avrete bisogno di questo.

Costruire OpenCV da sorgente

Compilare da sorgente può sembrare un po’ complicato all’inizio, ma una volta che ci siete riusciti, non c’è niente di complicato.

Prima installeremo alcune dipendenze. Alcune sono richieste, altre sono opzionali. Puoi saltare le dipendenze opzionali se non vuoi.

Dipendenze necessarie per la compilazione

Abbiamo bisogno di CMake per configurare l’installazione, GCC per la compilazione, Python-devel e Numpy per costruire i binding Python ecc.

sudo apt-get install cmake
sudo apt-get install gcc g++

per supportare python2:

sudo apt-get install python-dev python-numpy

per supportare python3:

sudo apt-get install python3-dev python3-numpy

Prossimo abbiamo bisogno del supporto GTK per le funzioni GUI, supporto Camera (v4l), supporto Media (ffmpeg, gstreamer) ecc.

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev

per supportare gtk2:

sudo apt-get install libgtk2.0-dev

per supportare gtk3:

sudo apt-get install libgtk-3-dev

Dipendenze opzionali

Queste dipendenze sono sufficienti per installare OpenCV nella vostra macchina Ubuntu. Ma a seconda delle tue esigenze, potresti aver bisogno di alcune dipendenze extra. Una lista di tali dipendenze opzionali è data qui sotto. Puoi lasciarle o installarle, scegli tu 🙂

OpenCV viene fornito con file di supporto per formati di immagine come PNG, JPEG, JPEG2000, TIFF, WebP ecc. Ma potrebbe essere un po’ vecchio. Se vuoi ottenere le ultime librerie, puoi installare i file di sviluppo per le librerie di sistema di questi formati.

sudo apt-get install libpng-dev
sudo apt-get install libjpeg-dev
sudo apt-get install libopenexr-dev
sudo apt-get install libtiff-dev
sudo apt-get install libwebp-dev

Nota Se state usando Ubuntu 16.04 potete anche installarelibjasper-devper aggiungere un supporto a livello di sistema per il formato JPEG2000.

Scaricare OpenCV

Per scaricare l’ultimo sorgente dal repository GitHub di OpenCV. (Se vuoi contribuire a OpenCV scegli questo. Per questo, devi prima installare Git)

$ sudo apt-get install git
$ git clone https://github.com/opencv/opencv.git

Creerà una cartella “opencv” nella directory corrente. La clonazione può richiedere un po’ di tempo a seconda della vostra connessione internet.

Ora aprite una finestra di terminale e navigate nella cartella “opencv” scaricata. Crea una nuova cartella “build” e navigaci dentro.

$ mkdir build
$ cd build

Configurazione e installazione

Ora abbiamo tutte le dipendenze necessarie, installiamo OpenCV. L’installazione deve essere configurata con CMake. Specifica quali moduli devono essere installati, il percorso di installazione, quali librerie aggiuntive devono essere usate, se la documentazione e gli esempi devono essere compilati ecc. La maggior parte di questo lavoro viene fatto automaticamente con parametri predefiniti ben configurati.

Il seguente comando è normalmente usato per la configurazione della compilazione delle librerie di OpenCV (eseguito dalla cartella di compilazione):

$ cmake ../

OpenCV per default assume il tipo di compilazione “Release” e il percorso di installazione è “/usr/local”. Per ulteriori informazioni sulle opzioni di CMake fare riferimento alla guida alla compilazione di OpenCV C++:

Si dovrebbero vedere queste linee nell’output di CMake (significano che Python è stato trovato correttamente):

— Python 2:
— Interprete: /usr/bin/python2.7 (ver 2.7.6)
— Librerie: /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.6)
— numpy: /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.8.2)
— percorso dei pacchetti: lib/python2.7/dist-packages
— Python 3:
— Interprete: /usr/bin/python3.4 (ver 3.4.3)
— Librerie: /usr/lib/x86_64-linux-gnu/libpython3.4m.so (ver 3.4.3)
— numpy: /usr/lib/python3/dist-packages/numpy/core/include (ver 1.8.2)
— percorso pacchetti: lib/python3.4/dist-packages

Ora costruite i file usando il comando “make” e installateli usando il comando “make install”.

$ make
# sudo make install

L’installazione è finita. Tutti i file sono installati nella cartella “/usr/local/”. Aprite un terminale e provate ad importare “cv2”.

import cv2 as cv
print(cv.__version__)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *