Como a visão computacional fez um peixe dirigir

Inúmeras aplicações tem surgido através da aplicação de técnicas de detecção de objetos utilizando visão computacional. No vídeo abaixo, temos um exemplo utilizando a alimentação do sistema de direcionamento baseado na posição detectada do peixe.

Instalando OpenCV no MacOS Mountain Lion

Para a instalação do OpenCV no MacOS Mountain Lion, sugiro instalar o MacPorts.

A grande vantagem de se usar o MacPorts é que a instalação de dependências será facilitada e uma vez instalado o OpenCV podemos optar pela compilação usando o G++ ao invés de usar o XCode. Essa é uma excelente opção quando estamos gerando  o código portável para outras plataformas.

Após dedicar algum tempo tentando diferentes instaladores, cheguei a esse procedimento que funcionou perfeitamente no MacOS Mountain Lion.

1 – Remova o Python que vem instalado no Mac. Durante a instalação do OpenCV a versão 2.7 do Python será instalada como dependência pelo MacPorts. Caso o Python não seja removido, haverá um erro durante a instalação da dependência do Python no OpenCV através do MacPorts durante a tentativa de sobrescrever o Python.

sudo rm -rf /Library/Python/

2 – Instale o MacPorts

3 – Após instalação do MacPorts aplique o comando abaixo, para garantir que o port esta atualizado :

sudo port -v selfupdate

Uma mensagem desse tipo deve aparecer :

Updating MacPorts base sources using rsync
receiving file list … done

4 – Vamos proceder a instalação do Python no MacPorts.

sudo port install python27
Esse processo leva algum tempo já que serão aplicadas todas as dependências para funcionamento do Python.

5 – Vamos proceder a ativação do Python como default para o MacOS.

sudo port -f activate python27

6 – Agora vamos a instalação do OpenCV através do MacPorts:

sudo port install opencv configure.compiler=llvm-gcc-4.2

Esse processo também leva tempo dependendo da velocidade de conexão com a internet. Uma vez que o processo instalará diferentes pacotes como ffmpeg, libjpeg, libtiff, jasper, libpng e etc…

Ao término da instalação, será apresentada a seguinte mensagem :

—> Staging opencv into destroot
—> Installing opencv @2.4.2_2
—> Activating opencv @2.4.2_2
—> Cleaning opencv
—> Updating database of binaries: 100.0%
—> Scanning binaries for linking errors: 100.0%
—> No broken files found.

Pronto!

 

 

Detecção de pontos na face

O processo de detecção de elementos da face requer muitas das vezes a manipulação das matrizes de representação da imagem.

Foto original :

20120808-163028.jpg

A conversão da matriz para escala de cinza diminui o tempo de busca, assim como o ajuste do tamanho da imagem.

20120808-163955.jpg

Blur em área da imagem

Exemplo simples de como utilizar ROI ( região de interesse ) para para limitar a área de Blur em imagens utilizando OpenCv.

A variável roi do tipo retângulo, possui as coordenadas da face de Lena.

Mat doBlur(Mat image,Rect roi){
//Seleciona ROI para aplicacao de blur
Mat imgROI = image(roi);
blur(imgROI,imgROI,Size(20,20),Point(2,2),1);
return image;
}

20120724-083220.jpg