----------------------------------------------------------------------------------------------------
Manual de Instalación y configuración de la librería OpenCV 3 en Linux (Ubuntu 16.04 LTS)
----------------------------------------------------------------------------------------------------

Requisitos: cuenta con privilegios de administración

Más información en http://opencv.org


1) Actualizar lista de paquetes: 

Ejecutaremos  los siguientes comandos en la consola:


sudo apt-get update
sudo apt-get upgrade

 
(... nos pedirá la clave de nuestra cuenta con privilegios de admimistración)


2) Instalar paquetes adicionales: 

Ejecutaremos  los siguientes comandos en la consola:

#Removing any pre-installed ffmpeg and x264"
sudo apt-get  remove ffmpeg x264 libx264-dev

# INSTALL THE DEPENDENCIES
# Build tools:
sudo apt-get install -y build-essential cmake cmake-qt-gui pkg-config checkinstall git

# GUI (if you want to use GTK instead of Qt, replace 'qt5-default' with 'libgtkglext1-dev' and remove '-DWITH_QT=ON' option in CMake):
sudo apt-get install -y  --fix-missing  qt5-default libvtk6-dev  libgtk2.0-dev

# Media I/O:
sudo apt-get install -y zlib1g-dev libjpeg-dev libwebp-dev libpng-dev pngtools libtiff5-dev libtiff-tools libjasper-dev libopenexr-dev libgdal-dev

# Video I/O:
sudo apt-get install -y libdc1394-22-dev  libdc1394-22 libdc1394-utils libavcodec-dev libavformat-dev libav-tools libswscale-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev yasm libopencore-amrnb-dev libopencore-amrwb-dev libxine2-dev libxine2-ffmpeg libxine2-dev libxine2-bin  libv4l-dev   libv4l-0 v4l-utils

sudo apt-get install -y  libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev  libunicap2 libunicap2-dev  swig    

# Parallelism and linear algebra libraries:
sudo apt-get install -y libtbb2 libtbb-dev libeigen3-dev

# Python:
sudo apt-get install -y python-dev python-tk python-numpy python3-dev python3-tk python3-numpy

# Java:
sudo apt-get install -y ant default-jdk

# Documentation:
sudo apt-get install -y doxygen

 

3) Instalar la librería OpenCV:

Descargaremos la última versión para Linux (actualmente opencv-3.4.14.zip):

wget https://github.com/opencv/opencv/archive/refs/tags/3.4.14.zip -O opencv-3.4.14.zip 
wget https://github.com/opencv/opencv_contrib/archive/refs/tags/3.4.14.zip -O opencv_contrib-3.4.14.zip


Descomprimiremos el fichero 


unzip opencv-3.4.14.zip
unzip opencv_contrib-3.4.14.zip

cd opencv-3.4.14

 
 
4) Compilar la librería OpenCV:

Ejecutaremos  los siguientes comandos en la consola:


mkdir build
cd build


------------------------
Si tenemos instaladas las versiones 2 y 3 de  python es preciso editar un fichero de cmake previamente y cambiar el orden de bœsqueda:

nano  cmake/OpenCVDetectPython.cmake

if(PYTHON_DEFAULT_EXECUTABLE)
    set(PYTHON_DEFAULT_AVAILABLE "TRUE")
elseif(PYTHON3INTERP_FOUND) # Use Python 3 as fallback Python interpreter (if there is no Python 2)
    set(PYTHON_DEFAULT_AVAILABLE "TRUE")
    set(PYTHON_DEFAULT_EXECUTABLE "${PYTHON3_EXECUTABLE}")
elseif(PYTHON2INTERP_FOUND) # Use Python 2 as default Python interpreter
    set(PYTHON_DEFAULT_AVAILABLE "TRUE")
    set(PYTHON_DEFAULT_EXECUTABLE "${PYTHON2_EXECUTABLE}")
endif()

------------------


cmake -D BUILD_SHARED_LIBS=OFF  -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local  -D BUILD_PYTHON_SUPPORT=ON  -D WITH_CUDA=OFF  -D WITH_QT=ON -D WITH_VTK=ON -DWITH_OPENGL=ON -D WITH_OPENCL=OFF -D BUILD_EXAMPLES=ON -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.4.14/modules  -DOPENCV_ENABLE_NONFREE:BOOL=ON  ../


make


(......Puede tardar bastante tiempo en compilar la librería OpenCV)

La opción -D BUILD_SHARED_LIBS=OFF deberá  quitarse si queremos compilarla como una libraría dinámica compartida.


sudo make install


(... nos pedirá la clave de nuestra cuenta para instalar los ficheros de la librería)



5) Configurar variables de entorno:

Ejecutaremos  los siguientes comandos en la consola:

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

sudo sh -c 'echo " export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig" >> /etc/bash.bashrc'


6) Compilación con CMAKE: (ej1.cpp)

- Crear una carpeta y colocar en ella el código fuente que deseamos compilar (ej1.cpp)

- Crear un fichero en esa carpeta llamado CMakeLists.txt con el siguiente contenido:

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
FIND_PACKAGE( OpenCV 3.4 REQUIRED )
LINK_LIBRARIES( ${OpenCV_LIBS} )

ADD_EXECUTABLE ( ej1   ej1.cpp )


- Ejecutar en la consola:

cd 'Directorio del programa'
cmake .
make

./ej1


7) Ejemplos: 

- En la siguiente carpeta tenemos los ejemplos de la OpenCV compilados

cd ~/opencv-3.4.14/build/bin



----------------------------------------------------------------------------------------------------
Visión por Computador (1782)
Grado Ingeniería Electrónica y Automática Industrial
Dpto. Ingeniería de Sistemas y Automática
Universidad Miguel Hernández