OpenCV 3.1 sobre Qt 5 en Debian
Qt es un framework multiplataforma (Windows, Linux, macOS, Android, etc.) orientado a objetos, ampliamente utilizado para desarrollar software con interfaces gráficas de usuario, así como herramientas de línea de comandos para servidores que no requieren interfaz gráfica.
En este tutorial lo integraremos junto con OpenCV 3.1 en Debian 8. Si solo desea instalar OpenCV 3.1, le recomiendo el siguiente tutorial: Instalación de OpenCV 3.1.0 en Debian 8.
Instalación de Qt 5.7 y Qt Creator
Actualizamos el archivo sources.list agregando:
deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main
deb http://http.debian.net/debian/ jessie main
Actualizamos los repositorios:
apt-get update
Instalamos los paquetes de Qt y Qt Creator:
apt-get install qt5-default qtcreator
Instalación de OpenCV 3.1
Instalación de dependencias para los codificadores de vídeo
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 dependencias adicionales de OpenCV
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 y compilar OpenCV 3.1.0
wget https://github.com/Itseez/opencv/archive/3.1.0.zip
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 ..
Nota: Si presenta problemas al compilar, cambieWITH_FFMPEG=ONporWITH_FFMPEG=OFF.
make -j $(nproc)
sudo make install
Configuración de bibliotecas
Para que OpenCV funcione correctamente, cree los enlaces y la caché necesarios:
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).
Errores comunes al instalar OpenCV 3.1
Error durante la compilación
make[1]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] Error 2
make: *** [all] Error 2
Generalmente se debe a la falta de librerías de FFmpeg. Si el problema persiste, 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 ..
Error 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/