Como instalar o OpenCV 2.3.1 no Ubuntu 11.10 Oneiric Ocelot com suporte para Python

O OpenCV (Open Source Computer Vision) é uma biblioteca de funções de programação para visão computacional em tempo real. É escrita em C/C++ e é usada no mundo inteiro em muitas aplicações de visão computacional.

Este tutorial é uma mistura de dois outros bons tutoriais de instalação do OpenCV: A Compreehensive Guide to Installing and Configuring OpenCV 2.3.1 on Ubuntu do site ozbots.org; e OpenCV Installation Guide on Debian and Ubuntu da OpenCV Wiki. Utilizei este procedimento com sucesso para instalar o OpenCV em dois computadores com arquitectura amd64 (um portátil e um desktop) a correr Ubuntu 11.10 Oneiric Ocelot. Contudo, se se deparar com algum problema pode consultar a publicação Comprehensive OpenCV Installation Troubleshooting Guide do site ozbots.

 
1. Remover quaisquer versões do ffmpeg e do x264 previamente instaladas.
sudo apt-get remove ffmpeg x264 libx264-dev
2. Obter todas as dependências
sudo apt-get update
sudo apt-get install build-essential checkinstall git pkg-config cmake libpng12-0 libpng12-dev libpng++-dev libpng3 libpnglite-dev libpngwriter0-dev libpngwriter0c2 libfaac-dev libjack-jackd2-dev libjasper-dev libjasper-runtime libjasper1 libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev texi2html yasm zlib1g-dev zlib1g-dbg zlib1g libgstreamer0.10-0 libgstreamer0.10-dev libgstreamer0.10-0-dbg 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 pngtools libtiff4-dev libtiff4 libtiffxx0c2 libtiff-tools libjpeg8 libjpeg8-dev libjpeg8-dbg libjpeg-prog libavcodec-dev libavcodec52 libavformat52 libavformat-dev libxine1-ffmpeg libxine-dev libxine1-bin libunicap2 libunicap2-dev libdc1394-22-dev libdc1394-22 libdc1394-utils swig python-numpy  libpython2.7 python-dev python2.7-dev libjpeg-progs libjpeg-dev libgtk2.0-0 libgtk2.0-dev gtk2-engines-pixbuf
3. Fazer download e instalar x264 – fazer download de qualquer versão estável recente de ftp://ftp.videolan.org/pub/videolan/x264/snapshots/  (Usei a versão x264-snapshot-20111012-2245-stable.tar.bz2) e extrair o ficheiro comprimido para uma pasta. A seguir, entrar na pasta, configurar e compilar:
./configure --enable-static
make
sudo make install
NOTA: Nos meus computadores (64-bit) tive que adicionar as flags “–enable-pic –enable-shared” à configuração. Caso contrário, obtia erros no processo de compilação do OpenCV. Se os erros aparecerem, executar os comandos seguintes:
sudo make clean
e reconfigurar e recompilar utilizando
./configure --enable-static --enable-pic --enable-shared
make
sudo make install
4. Fazer download e instalar ffmpeg – fazer download de uma versão estável e recente de http://ffmpeg.org/download.html (Usei a ffmpeg-0.8.5.tar.gz) e extraí-la para uma pasta. A seguir, entrar na pasta, configurar e compilar:
NOTA: De acordo com alguns leitores, alguns dos cabeçalho sda biblioteca ffmpeg mudaram e não são reconhecidos pelo OpenCV. Instalação com a versão “ffmpeg0.10” deverá funcionar.
./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab
make
sudo make install
NOTA: Mais uma vez, nos meus computadores (64-bit) tive que adicionar as flags  “–enable-pic –enable-shared” ao prcesso de configuração. Caso contrário obteria erros de compilação no passo seguinte. Se aparecerem erros, executar os comandos
sudo make clean
e reconfigurar e recompilar usando
./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab --enable-pic --enable-shared
make
sudo make install
5. Fazer download e instalar v4l – fazer download de alguma versão recente e estável de http://www.linuxtv.org/downloads/v4l-utils/ (usei a v4l-utils-0.8.5.tar.bz2) e extraí-la para uma pasta. De seguinda, entrar na pasta e compilar:
make
sudo make install
6. Fazer download e instalar o OpenCV – fazer download do OpenCV 2.3.1 de  http://sourceforge.net/projects/opencvlibrary/files/ e extrair para uma pasta. De seguida entrar na pasta e compilar:
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON -D BUILD_EXAMPLES=ON ..
make
sudo make install
7. Configurar o Ubuntu – adicionar a linha seguinte ao ficheiro “.bashrc” de maneira a dizer ao sistema operativo onde se localizam as bibliotecas do OpenCV sem que seja necessário fazer essa indicação cada vez que se abre uma consola.:
export LD_LIBRARY_PATH=/usr/local/lib
Utilizando um editor de texto, adicionar as linhas seguintes ao fim do ficheiro /etc/bash.bashrc:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
8. Reiniciar.

E está tudo! 🙂 Se todos os passos indicados acima forem devidamente realizados deverá ter agora o OpenCV instalado no seu computador. Pode experimentar os programas de amostra na pasta <pasta do OpenCV>/samples/ . Para compilar todos os programas de amostra escritos em C/C++ de uma só vez deve entrar na pasta <pasta do OpenCV>/samples/c e dar permissões ao script build_all.sh permissões para que seja executado:
chmod +x build_all.sh
De seguida basta executar o seguinte comando
./build_all.sh
e todos os programas de amostra serão compilados.

Para verificar se os wrappers de Python estão correctamente instalados deve executar os seguintes comandos:
python
import cv2
Se nenhum erro aparecer, então é porque estão correctamente instalados.

Para compilar programas que usem as bibliotecas do OpenCV deve usar o comando:
g++ `pkg-config --cflags opencv` my_code.cpp -o my_code `pkg-config --libs opencv
Se encontrar alguns problemas neste tutorial, coloque-os nos comentários abaixo. Não prometo que encontrarei a solução, visto que não sou nenhum perito, mas tentarei, dentro do que o tempo me permitir 🙂

Actualização (01/01/13): Fiz uma publicação neste blog sobre Como usar CMake com OpenCV para compilar projectos que usem as bibliotecas do OpenCV.
 
Mais tarde irei publicar alguns projectos básicos utilizando o OpenCV.

 Achou esta publicação útil? Deseja contribuir para outros projectos envolvendo ciências computacionais, electrónica, robótica ou mecatrónica que serão publicados neste blog? Se sim, pode fazer uma doação utilizando o botão do Paypal abaixo. Obrigado! 🙂
 

Donate