Instalación de OpenCV 3.1.0 en Debian 8
En este artículo vamos a ver cómo instalar la biblioteca OpenCV 3.1.0, la última versión lanzada hace un par de meses, en Debian 8 Jessie de 64 bits. Para quienes ya hayan instalado versiones anteriores, verán que, básicamente, nada ha cambiado. Sin embargo, si han experimentado algunos errores a la hora de compilar, estos suelen deberse a la ausencia de ffmpeg en los repositorios, por lo que su instalación 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 last_x264.tar.bz2
cd x264-snapshot-*
./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 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-nonfree --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, 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 (puede hacerse manualmente o mediante wget):
wget https://github.com/Itseez/opencv/archive/3.1.0.zip
Descomprimir y compilar:
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 por WITH_FFMPEG=OFF
make -j $(nproc)
sudo make install
Para comprobar que OpenCV funciona correctamente, cree los enlaces y la caché necesarios para las bibliotecas:
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
Con esto, OpenCV 3.1.0 debería estar funcionando correctamente en Debian 8 (Jessie).
Pruebas
Vamos a comprobar que todo funciona correctamente. Diríjase a la carpeta donde se descomprimió OpenCV y compile un ejemplo:
cd opencv-3.1.0/samples/cpp/
g++ opencv_version.cpp `pkg-config --libs --cflags opencv` -o opencv_version
./opencv_version
Debería obtener como salida:
Welcome to OpenCV 3.1.0
Felicidades, ya tiene funcionando OpenCV 3.1.0 en Debian.
Errores comunes
A continuación se muestran dos de los errores más comunes al instalar OpenCV 3.1.0.
Error al compilar highgui
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. Si el problema persiste, configure OpenCV sin soporte para ffmpeg:
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 ..
Error -lippicv al compilar ejemplos
/usr/bin/ld: no se puede encontrar -lippicv
collect2: error: ld returned 1 exit status
Diríjase a la carpeta donde se descomprimió OpenCV y ejecute:
cd opencv-3.1.0/3rdparty/ippicv/downloads/linux-*
tar -xvzf ippicv_linux*
cd ippicv_lnx/lib/intel64/
sudo cp libippicv.a /usr/local/lib/