A versão mais recente do OpenCV (até o momento em que esse post foi escrito) pode ser encontrada no site do sourceforge e pode ser baixada com o seguinte comando:
$ wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.3.1/OpenCV-2.3.1a.tar.bz2
Para extrair o pacote com os fontes, execute:
$ tar -jxvf OpenCV-2.3.1a.tar.bz2
Tenho o hábito de deixar todos os fontes de pacotes que instalo manualmente no diretório /usr/local/src, então vamos mover todo o conteúdo do pacote extraído no diretório corrente para nosso local de preferência
$ sudo mv OpenCV-2.3.1 /usr/local/src/
Recomendo criar um novo diretório para abrigar tanto os arquivos de configuração quando os que forem produzidos pela compilação. Assim, crie um novo diretório chamado build e mova-se para lá:
$ mkdir build
$ cd build
Bom, precisamos instalar alguns pacotes que são dependências para a compilação desta versão do OpenCV no Ubuntu 11.10. Para isso, execute:
$ sudo apt-get install ffmpeg libavcodec53 libavdevice53 libavfilter2 libavformat53 libavutil51 libdc1394-22 libgsm1 libpostproc52 libschroedinger-1.0-0 libswscale2 libva1
Há ainda outras dependências que também precisam ser instaladas e que irão gerar uma lista de outras sub-dependências. Listei os três pacotes necessários ao OpenCV e logo abaixo deles, uma lista dos pacotes que estes irão requerer:
→ llibgtk2.0-dev
debhelper gettext html2text intltool-debian libatk1.0-dev libcairo-script-interpreter2 libcairo2-dev libexpat1-dev libfontconfig1-dev libfreetype6-dev libgdk-pixbuf2.0-dev libglib2.0-dev libgtk2.0-dev libmail-sendmail-perl libpango1.0-dev libpixman-1-dev libpng12-dev libsys-hostname-long-perl libunistring0 libxcb-render0-dev libxcb-shm0-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxml2-utils libxrandr-dev libxrender-dev po-debconf x11proto-composite-dev x11proto-damage-dev x11proto-fixes-dev x11proto-randr-dev x11proto-render-dev x11proto-xext-dev x11proto-xinerama-dev zlib1g-dev
→ libgstreamer0.10-dev
gir1.2-gstreamer-0.10 libgstreamer0.10-dev libxml2-dev
→ libgstreamermm-0.10-dev
gir1.2-gst-plugins-base-0.10 libglibmm-2.4-dev libgstreamer-plugins-base0.10-dev libgstreamermm-0.10-2 libgstreamermm-0.10-dev libsigc++-2.0-dev libxml++2.6-2 libxml++2.6-dev
→ libdc1394-22-dev
libdc1394-22-dev libraw1394-dev
→ libjpeg62-dev
→ libtiff4-dev
libtiff4-dev libtiffxx0c2
→ libv4l-dev
→ openni-dev ps-engine
freeglut3 openni-dev ps-engine
Assim, execute o comando a seguir e confirme a instalação dos pacotes adicionais que o apt-get sugerir como necessários.
$ sudo apt-get install libgtk2.0-dev libgstreamer0.10-dev libgstreamermm-0.10-dev libdc1394-22-dev libjpeg62-dev libtiff4-dev libv4l-dev openni-dev ps-engine

Por razão do OpenCV utilizar alguns dos recursos mais recentes do FFmpeg, precisaremos instalar a versão 0.8.5 do FFmpeg manualmente.
Tal qual qualquer outro, baixe, compile e instale o pacote ffmpeg 0.8.5 realizando a sequencia abaixo:
$ wget http://ffmpeg.org/releases/ffmpeg-0.8.5.tar.bz2
$ tar -xvf ffmpeg-0.8.5.tar.bz2
$ sudo mv ffmpeg-0.8.5 /usr/local/src
$ cd /usr/local/src/ffmpeg-0.8.5
$ ./configure --disable-yasm
$ make
$ sudo make install
Agora podemos concluir a instalação pois todas as dependências foram satisfeitas. Certifique-se que depois disto tudo vc esteja no diretório build que havíamos criado lá no início.

$ ccmake ..
Mude as opções BUILD_EXAMPLES e WITH_OPENNI para “ON”
Pressione [c] para criar o arquivo de configuração do CMake e em seguida [q] para sair.
Caso contrário, simplesmente configure usando o comando cmake
$ cmake ..
Pronto! Podemos compilar e instalar o pacote, digitando os comandos a seguir:
$ make
$ sudo make install
Após instalados, os arquivos estarão distribuídos nos seguintes diretórios:
Executáveis em /usr/local/bin
Headers em /usr/local/include/opencv e /usr/local/include/opencv2
Libraries em /usr/local/lib
Documentação em /usr/local/share/OpenCV/doc
Exemplos em /usr/local/share/opencv/samples
Enjoy! :D
Um comentário:
Sabe se este tutorial funciona bem no ubuntu 11.04? Pois pode ter mais alguma lib com versão diferente que precise ser compilada além desta ffmpeg. Se não souber, eu mesmo testo e respondo se funcionou certinho!
Postar um comentário