Durante o desenvolvimento de aplicativos de visão por computador, normalmente deve-se experimentar e testar diversas técnicas e metodologias afim de verificar se a solução proposta é satisfatória. Nesses casos, não há necessidade de otimização de código ou velocidade de processamento e sim verificar se os métodos funcionam ou não. Nestes casos é muito útil o uso de ferramentas para a prototipagem.
O Octave é uma ferramenta matemática, como o conhecido Matlab, e livre, e distribuído sob a licença GPL. Ele foi desenvolvido tendo em mente a compatibilidade com o Matlab e por isso ambas as linguagens são muito parecidas. Tanto Octave quanto Matlab são excelentes programas para se realizar cálculos e ideais para fazer prototipagem na área de visão por computador, tanto pela facilidade de se trabalhar com matrizes e principalmente pela gama de bibliotecas prontas para cálculos numéricos.
Instalar o Octave no Ubuntu é fácil através do apt-get, porém a versão padrão vem configurado para processar imagens de 8 bits de resolução. Ao tentar ler uma imagem com imread, normalmente você terá o seguinte warning:
warning: your version of GraphicsMagick limits images to 8 bits per pixel
Para resolver isso, é necessário recompilar o GraphicsMagick que é usado pelo Octave. Neste post usaremos Octave-3.8.2 e GraphicsMagick-1.3.18.
Recompilando fontes
1) Primeiro vamos instalar os pacotes necessários
sudo apt-get install g++ gcc gfortran make libblas-dev liblapack-dev libpcre3-dev libreadline-dev libarpack2-dev libcurl4-gnutls-dev libfftw3-dev libfltk-dev libfontconfig1-dev libfreetype6-dev libglpk-dev libgraphicsmagick++-dev gnuplot libhdf5-serial-dev libgl-dev libqhull-dev libqrupdate-dev libsuitesparse-dev texinfo zlib1g-dev libgraphicsmagick++1-dev libgraphicsmagick++3
2) Faça o download do código fonte do GraphicsMagick
wget --no-check-certificate https://launchpad.net/ubuntu/+archive/primary/+files/graphicsmagick_1.3.18.orig.tar.bz2
3) Configure e instale GraphicsMagick. Escolha 16 ou 32 bits pela opção -with-quantum-depth. No nosso caso usaremos 32 bits.
tar jxvf graphicsmagick_1.3.18.orig.tar.gz cd GraphicsMagick-1.3.18 ./configure --with-quantum-depth=32 --enable-shared --disable-static --with-magick-plus-plus=yes make sudo make install
4) Adicione no path
export PATH=$PATH:/usr/local/lib
5) Faça o download do Octave
wget ftp://ftp.gnu.org/gnu/octave/octave-3.8.2.tar.gz
6) Configure e instale o Octave
tar zxvf octave-3.8.2.tar.gz cd octave-3.8.2 ./configure --prefix=/usr/local/octave --with-blas="-L/usr/lib -lblas" --with-lapack="-L/usr/lib -llapack" --with-fftw3f-libdir=/usr/local/fftw/lib --with-fftw3-includedir=/usr/local/fftw/include --without-curl --enable-shared --disable-static make sudo make install
Pronto, agora no shell vamos testar o octave. Nenhuma mensagem de warning deverá aparecer após imread:
$ cd ~
$ mkdir octave_test
$ cd octave_test
$ wget https://embarcados.com.br/wp-content/uploads/2014/10/octave.png
$ octave
octave:1> img = imread('~/octave_test/octave.png');
octave:2> imshow(img);
No próximo post iremos mostrar o simplecv que também é uma ótima ferramenta para o desenvolvimento. Com essa base iremos em seguida abordar temas práticos.






Curti Jo!
Acho que após a leitura desse artigo, tenho o trigger que precisava para começar a explorar o Octave.
Abs.
Que bom que gostou Felipe! Em visão por computador eu notei que ele é mais lento que o Matlab pra executar as mesmas tarefas. Não posso generalizar, mas tive essa sensação!