En este artículo, vamos a ver cómo instalar la biblioteca OpenCV 3.1.0, la última versión, lanzado hace un par de meses, en  Debian 8 Jessie de 64 bits. Para aquellos que ya han instalado versiones anteriores, verá que, básicamente, nada ha cambiado, sin embargo si ha experimentado algunos errores a la hora de compilar estos se deben a la ausencia de ffmpeg en los repositorios por lo que la instalación de este ultimo debe realizarse manualmente.

Instalación de los decodificadores de vídeo

Instalar dependencias

sudo apt-get update
sudo apt-get install build-essential checkinstall libfaac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev texi2html yasm zlib1g-dev libgstreamer0.10-0 libgstreamer0.10-dev gstreamer0.10-tools gstreamer0.10-plugins-base libgstreamer-plugins-base0.10-dev gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad gstreamer0.10-ffmpeg libgtk2.0-0 libgtk2.0-dev libjpeg62 libv4l-dev

Descargar, compilar e instalar la última versión de x264

wget ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
tar -xf ~/Downloads/last_stable_x264.tar.bz2
cd x264-snapshot-<version>-stable
./configure --enable-shared --enable-pic
make -j $(nproc)
sudo make install

Descargar, compilar e instalar la última versión de ffmpeg

wget http://ffmpeg.org/releases/ffmpeg-3.1.1.tar.bz2
tar -xf ~/Downloads/ffmpeg-3.1.1.tar.bz2
cd ffmpeg-3.1.1
./configure --enable-GPL --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable- libopencore-AMRWB --enable-libtheora --enable-libvorbis --enable-libxvid --enable-no libre --enable-postproc --enable-libx264 --enable-version3 --enable-x11grab --enable-shared - enable-pic 
make -j $(nproc)
sudo make install

Instalación de OpenCV 3.1.0

Para instalar las dependencias necesarias de OpenCV, tan sólo ejecute los siguientes comandos:

sudo apt-get -y install libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff-tools libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip libbz2-dev

Descargar OpenCV 3.1.0, se puede descargar de forma manual o ejecutar mediante wget:

wget https://github.com/Itseez/opencv/archive/3.1.0.zip

Descomprimimos y compilamos:

unzip 3.1.0.zip
cd opencv-3.1.0
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON  -D WITH_FFMPEG=ON .. # Si presenta problemas al compilar cambie WITH_FFMPEG=ON a WITH_FFMPEG=OFF
make -j $(nproc)
sudo make install

Para obtener OpenCV funciona correctamente, creamos los enlaces y caché necesarios a las bibliotecas:

sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig

Ya debería tener funcionando OpenCV 3.1.0 en Debian 8 (Jessie).

Pruebas

Vamos a probar a ver si todo funciona correctamente (puedes compilar cualquier otro ejemplo dentro de la carpeta). Nos dirigimos a la carpeta en donde se descomprimió OpenCV y compilamos un archivo:

cd opencv-3.1.0/samples/cpp/
g++ opencv_version.cpp `pkg-config --libs --cflags opencv` -o opencv_version
./opencv_version

Deberían obtener como respuesta:

Welcome to OpenCV 3.1.0

Felicidades ya tienes funcionando OpenCV 3.1.0 junto a Debian.

Errores comunes

Veremos como solucionar dos de los errores mas comunes al intentar instalar OpenCV 3.1.0:

make[1]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] Error 2
make: *** [all] Error 2

Generalmente se debe a la falta de las librerías de ffmpeg, es por ello que se instalan en un principio, sin embargo si el problema persiste al instalar ejecute:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON  -D WITH_FFMPEG=OFF ..

Al intentar compilar el ejemplo aparece:

/usr/bin/ld: no se puede encontrar -lippicv
collect2: error: ld returned 1 exit status

Dirígete a la carpeta en donde se descomprimió OpenCV y ejecuta los siguientes comandos:

cd opencv-3.1.0/3rdparty/ippicv/downloads/linux-*
tar tar -xvzf ippicv_linux*
cd ippicv_lnx/lib/intel64/
sudo cp libippicv.a /usr/local/lib/