instalar opencv 3.1 en ubuntu 14.04 lts

PAQUETES A INSTALAR

para compilar:

sudo apt-get install build-essential -y

dependencias de opencv y paquetes necesarios.

sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev -y

dependencias opcionales de opencv y archivos de python:

sudo apt-get install python-dev python3-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev -y

dependencias opcionales de opencv:

sudo apt-get install libgstreamer-plugins-base1.0-dev libavresample-dev -y

opcional: instalar ffmpeg

ubuntu decidió cambiar ffmpeg por libav, así que hay librerías de formatos que no va a encontrar opencv, para instalar ffmpeg se hace

sudo apt-add-repository ppa:mc3man/trusty-media

y se actualiza todo con sudo apt-get update && sudo apt-get upgrade

PREPARACIÓN DE COMPILACIÓN

para hacer los archivos de compilación se usa cmake


cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=$(pwd)/../../opencv_contrib/modules \
-D BUILD_EXAMPLES=ON ..

cuando termine de compilarse, hay que revisar el log para ver que muestre algo similar a lo siguiente

-- Python 2:
-- Interpreter: /usr/bin/python2.7 (ver 2.7.6)
-- Libraries: /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.6)
-- numpy: /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.8.2)
-- packages path: lib/python2.7/dist-packages
--
-- Python 3:
-- Interpreter: /home/ging/.virtualenvs/podi/bin/python3.4 (ver 3.4.3)
-- Libraries: /usr/lib/x86_64-linux-gnu/libpython3.4m.so (ver 3.4.3)
-- numpy: /home/ging/.virtualenvs/podi/lib/python3.4/site-packages/numpy/core/include (ver 1.10.4)
-- packages path: lib/python3.4/site-packages
--
-- Python (for build): /usr/bin/python2.7

para revisar si efectivamente se van a compilar los soportes para python3 hay que ver el archivo CMakeCache.txt

less CMakeCache.txt

y verificar que se encuentren las siguientes líneas en el

//Include opencv_python2 module into the OpenCV build
BUILD_opencv_python2:BOOL=ON

//Include opencv_python3 module into the OpenCV build
BUILD_opencv_python3:BOOL=ON

opencv siempre se compila para el python por defecto, en casi todos los sistemas linux el python por defecto es python2.7, por lo cual en ocasiones es necesario definir explícitamente las configuraciones para python agregando las siguientes cabeceras():

-D PYTHON3_EXECUTABLE=~/.virtualenvs/podi/bin/python3.4 \
-D PYTHON3_NUMPY_INCLUDE_DIRS=~/.virtualenvs/podi/lib/python3.4/site-packages/numpy/core/include

y luego hay que verificar si se encuentran las lineas para python3

COMPILACIÓN

una vez verificado, vamos a compilar con make, si tenemos un solo procesador la orden es sencillamente make, si son más nucleos podemos poner -j(numero de nucleos) el cual crea un proceso por núcleo para compilar más rápido

make -j4

si todo va sin errores, luego para instalar se usan las siguientes líneas

sudo make install
sudo ldconfig

por último, se crean los links simbólicos para que pueda usarse desde el ambiente virtual

ln -s /usr/local/lib/python3.4/site-packages/cv2.cpython-34m.so ~/.virtualenvs/podi/lib/python3.4/site-packages/cv2.so

y esta listo, para probar, hay que abrir python e importar cv2

Escrito por Pedro Rivera Wilches

Pedro Rivera Wilches

Soy Ingeniero de Automatizacion Industrial, gran apasionado de la ciencia, la tecnologia y la economia, materias en las que me desempeño profesionalmente. Me gusta la psicologia y analizar el mundo a mi alrededor.

spacer
Loading Facebook Comments ...

Leave a reply