Configurando o OpenCV no Raspberry2

Post date: 31/08/2015 19:16:29

Neste post, serão descritos os procedimentos necessários para configurar o OpenCV no Raspberry PI 2.

Antes de iniciar as configurações, é necessário obter os seguintes pre-requisitos:

Pré-requisitos

  • Imagem do RASPIBIAN, disponível no site: https://www.raspberrypi.org/downloads/raspbian/ gravada no sdcard do raspberrypi

  • Servidor SSH habilitado no raspberry

  • Cliente SSH, por exemplo, putty.

  • Opcional: cliente x-windows, configuração no windows disponível no meu site https://sites.google.com/site/rodccosta/tutoriais/windows/Putty-Xming

1. Instalando os pacotes

Deve-se alterar o arquivo /etc/hosts e /etc/hostname.

pi@raspberry $ sudo su root@raspberry # apt-get install libcv2* libcv-dev libcvaux* libhighgui* opencv-doc python-opencv pkg-config gcc g++ make

Depois disto, deve-se criar os links simbólicos de algumas bibliotecas, pois o apt-get não criou os links de todas as libs.

root@raspberry # ln -s /usr/lib/libopencv_photo.so.2.4.1 /usr/lib/libopencv_photo.so root@raspberry # ln -s /usr/lib/libopencv_ts.so.2.4.1 /usr/lib/libopencv_ts.so root@raspberry # ln -s /usr/lib/libopencv_stitching.so.2.4.1 /usr/lib/libopencv_stitching.so root@raspberry # ln -s /usr/lib/libopencv_videostab.so.2.4.1 /usr/lib/libopencv_videostab.so

2. Configurando o pkg-config

Para facilitar as configurações de compilação do opencv, configura-se o pkg-config para armazenar as diretrizes de compilação e ligação

.

root@raspberry # mkdir /var/lib/pkg-config root@raspberry # cd /var/lib/pkg-config root@raspberry # nano opencv.pc

O conteudo do opencv.pc está disponível a seguir:

prefix=/usr

exec_prefix=${prefix}

libdir=${prefix}

includedir_old=${prefix}/include/opencv

includedir_new=${prefix}/include

Name: OpenCV

Description: Intel(R) Open Source Computer Vision Library

Version: 2.4.1

Libs: -L${libdir} -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_ts -lopencv_video -lopencv_videostab

Cflags: -I${includedir_old} -I${includedir_new}

Para concluir a configuração, deve-se criar uma variável de ambiente PKG_CONFIG_PATH apontando para o diretório /var/lib/pkg-config. Para fazer isto, deve-se inserir no final do arquivo .bashrc o seguinte comando.

root@raspberry # echo "export PKG_CONFIG_PATH=/var/lib/pkg-config" >> ~/.bashrc root@raspberry # echo "export PKG_CONFIG_PATH=/var/lib/pkg-config" >> /home/pi/.bashrc

Para testar o pkg-config usa-se

root@raspberry # sh ~/.bashrc root@raspberry # pkg-config opencv --cflags root@raspberry # pkg-config opencv --libs

Após as configurações, deve-se reiniciar o raspberry e pronto, o opencv já está configurado e pronto pra criar programas.

3. Testando

Neste tutorial será criado um programa que carrega uma imagem gravada no sdcard do raspberry e a exibe na interface gráfica em seguida.

pi@raspberry ~ $ nano teste.cpp

O conteúdo do arquivo teste.cpp é descrito a seguir

#include <opencv2/highgui/highgui.hpp>

#include <opencv2/imgproc/imgproc.hpp>

#include <iostream>

using namespace std;

using namespace cv;

int main(void)

{

Mat img = imread("imagem.jpg");

imshow("Original",img);

waitKey(0);

}

Depois disso, basta compilar o arquivo

pi@raspberry ~ $ c++ -c teste.cpp -o teste.o `pkg-config opencv --cflags` pi@raspberry ~ $ c++ teste.o -o teste.bin `pkg-config opencv --libs`

Pronto, concluído estas instruções, executa-se o programa compilado e a imagem é exibido na tela

pi@raspberry ~ $ ./teste.bin

A seguir é mostrado o resultado final dos testes realizados no windows com o x-ming

Vídeo

Foi criado um video executando este tutorial, disponível no youtube.com/rodccosta