Instalar OpenCV en Raspbian Jessie

OpenCV (Open Source Computer Vision) es una librería software de código abierto sobre visión artificial.
Es multiplataforma por lo que existen distintas versiones en C/C++, Java, Python y distintos soportes para cada sistema operativo (Linux, Mac, Windows …).
Contiene más de 500 funciones que abarcan una gran gama de áreas en el proceso de visión, como reconocimiento de objetos o reconocimientos facial, calibración de cámaras, visión estérea y visión robótica.
Siguiendo los pasos que vamos a enumerar a continuación podemos instalar OpenCV en nuestra Raspberry Pi con Raspbian Jessie, en unas dos horas.
Lo primero de todo será comprobar que la Raspberry está actualizada:
sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
sudo reboot
Una vez actualizada y reiniciada, seguimos con los siguientes pasos, para instalar las dependencias:
sudo apt-get install build-essential git cmake pkg-config
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install python2.7-dev python3-dev
Descargamos y descomprimimos el código fuente de Open CV:
cd ~
wget -O opencv.zip
https://github.com/Itseez/opencv/archive/3.0.0.zip
unzip opencv.zip
wget -O opencv_contrib.zip
https://github.com/Itseez/opencv_contrib/archive/3.0.0.zip
unzip opencv_contrib.zip
Configuramos Python, puesto que en nuestro caso será con el que utilizaremos OpenCV en la Raspberry Pi.
wget
https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
Configuramos el entorno virtual:
sudo pip install virtualenv virtualenvwrapper
sudo rm -rf ~/.cache/pip
Ahora abrimos el fichero del perfil, y añadimos las ultimas líneas:
sudo nano ~/.profile
El archivo debe quedar con el aspecto anterior, guardamos con Ctrl+X y ejecutamos lo siguiente:
source ~/.profile
mkvirtualenv cv
Siempre que cerremos sesión o apaguemos la Raspberry, si queremos trabajar en el entorno virtual tenemos que ejecutar lo siguiente:
source ~/.profile
workon cv
Y ya nos aparecerán las letras (cv), indicando que estamos en el entorno virtual
Una vez estemos en el entorno virtual, instalamos numpy
pip install numpy
cd ~/opencv-3.0.0/
Y una vez estamos ubicados en la carpeta de opencv ejecutamos:
mkdir build
Compilamos e instalamos OpenCV:
cd build
Y ahora ejecutamos el siguiente comando:
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.0.0/modules \
-D BUILD_EXAMPLES=ON ..
Antes de seguir, nos aseguramos que en el apartado de Python 2, tanto el intérprete, como numpy apuntan al entorno virtual.
Compilamos:
make -j4
(Si queremos compilar utilizando 4 núcleos)
o make
simplemente (compilación más lenta)
Empezará la compilación que puede durar hora y media si se usan los 4 núcleos, o más si sólo se utiliza uno.
Si todo sale bien, una vez que llegue al 100 % de la compilación y si no se han recibido mensajes de error, ya tendremos casi listo nuestro Open CV.
En caso de recibir error, puedes probar a borrar la compilación con el comando make clean
y una vez eliminada, volver a probar ejecutando make
.
Una vez compilado sin errores, seguimos con el siguiente paso:
sudo make install
sudo ldconfig
cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so
Y ya tenemos listo nuestro OpenCV en la Raspberry Pi.
Para verificar que todo ha ido correctamente podemos hacer la siguiente comprobación:
python
Si está correctamente instalado, devolverá la versión entre otros datos. Y lo mismo ocurre con cv2:
cv2.__version__
Gracias a http://www.pyimagesearch.com/2015/10/26/how-to-install-opencv-3-on-raspbian-jessie/