quinta-feira, 5 de maio de 2011

Instalando o OpenCV 2.2 no Ubuntu 11.04

Primeiramente é necessário instalar o FFmpeg

Se você não for realizar qualquer Instale o FFmpeg e suas dependências:
$ sudo apt-get install ffmpeg libavcodec52 libavdevice52 libavfilter1 libavformat52 libavutil50 libdc1394-22 libgsm1 libpostproc51 libschroedinger-1.0-0 libswscale0 libva1 libvpx0

Baixe o OpenCV 2.2 e descompacte o pacote:
$ wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.2/OpenCV-2.2.0.tar.bz2
$ tar -xvf OpenCV-2.2.0.tar.bz2

Mova-se para o diretório do OpenCV:
$ cd OpenCV-2.2.0

Instale todas as dependências
$ sudo apt-get install libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libdc1394-22-dev libraw1394-dev libv4l-dev libgtk2.0-dev libjpeg62-dev libjasper-dev libtiff4-dev libtiffxx0c2 python-numpy libssl-dev python2.7-dev libblas3gf libgfortran3 liblapack3gf libgstreamermm-0.10-dev libglibmm-2.4-dev libgstreamer-plugins-base0.10-dev libgstreamer0.10-dev libgstreamermm-0.10-2 libsigc++-2.0-dev libxml++2.6-2 libxml++2.6-dev libxml2-dev

Há um pequeno problema com relação ao include do Video For Linux (v4l) no arquivo cap_v4l.cpp. Aqui há duas opções:

(1) Editar o arquivo para acrescentar o caminho correto:

$ gedit modules/highgui/src/cap_v4l.cpp
Comente a instrução #include <linux/videodev.h> na linha 217 (aproximadamente), e
Acrescente #include <libv4l1-videodev.h>
Salve o arquivo
    (2) Criar um link simbólico redirecionando a procura pelo arquivo inexistente para o local correto:

    $ sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h

      Agora podemos compilar:
      $ mkdir release
      $ cd release
      $ cmake ..
      $ make
      $ sudo make install

      3 comentários:

      Tiago Carvalho disse...

      Olá amigo , eu tentei instalar o openCv pelo seu tutorial e na hora de rodar o comando make apareceu a seguinte mensgem em 80% do progresso:

      [ 80%] Built target opencv_haartraining_engine
      Linking CXX executable ../../bin/opencv_createsamples
      ../../lib/libopencv_highgui.so.2.2.0: undefined reference to `cvCreateCameraCapture_V4L(int)'
      collect2: ld returned 1 exit status
      make[2]: ** [bin/opencv_createsamples] Erro 1
      make[1]: ** [modules/haartraining/CMakeFiles/opencv_createsamples.dir/all] Erro 2
      make: ** [all] Erro 2


      O que que pode estar errado???

      Leandro disse...

      Olá Tiago,
      Ao que parece é um erro de linkedição gerado pela falta de correspondência entre a definição da função cvCreateCameraCapture_V4L(int) e a library do V4L (arquivo .so).
      Veja se o link simbólico está apontando para o arquivo correto ou se o include adicionado no fonte do highgui está certo.

      Natan disse...

      Deu o mesmo erro aqui, conferi o que você falou mas não adiantou... tentei das duas formas.

      O que eu faço?