• Nenhum resultado encontrado

Software dispositivo apontador OpenCV

No documento 2015.1 Carlos Emanuel Gomes Sousa (páginas 39-44)

O software que controla a lógica do dispositivo apontador é o responsável por capturar a imagem da câmera, processar, identificar o ponto, transformá-lo do espaço da câmera para o espaço do programa, e emitir o respectivo comando no computador. Seu funcionamento é dividido em dois módulos: calibração e execução, conforme pode ser visto nas Figuras19e21.

O módulo de calibração (Figura19, lado esquerdo) cria as imagens na tela de pontos ( p(i)) conhecidos próximos às extremidades da mesma, um de cada vez (Figura20), e procura por uma interação do dispositivo apontador.

Quando o usuário marca o ponto com o dispositivo apontador, o módulo de calibração faz a devida vinculação do ponto clicado ao ponto fornecido, e muda a imagem na tela (Figura20) para, ao final dos quatro pontos, calcular a matriz de transformação. A matriz de transformação é usada no módulo de execução para transladar o ponto do espaço capturado pela câmera para o espaço da imagem virtual no computador.

Toda implementação do processamento de imagens deste programa foi realizada usando a biblioteca OpenCV.

OpenCV é uma biblioteca de visão computacional de código aberto, estável, que fornece mais de 2500 algoritmos otimizados. Desenvolvida originalmente em C++, suporta ainda: C,

Capítulo 3. Materiais e métodos 39

Figura 19: Fluxograma do software do apontador

Fonte: Próprio autor

Figura 20: Telas geradas dos pontos de calibração em sequência

Fonte: Próprio autor

Python, Java, e MATLAB, podendo ser usada ainda nas plataforas Windows, Linux, Android e Mac (OPENCV,2014b).

Neste trabalho foi utilizada a versão 2.4.9 do OpenCV. Através dela foi efetuado todo processamento de imagens digitais da parte do apontador.

Capítulo 3. Materiais e métodos 40

Figura 21: Funcionamento do software do apontador - módulo execução

Fonte: Próprio autor

3.2.1

Aquisição - câmera

A aquisição será descrita na seção3.4hardwareCâmera digital, na qual apresentam-se as alterações realizadas na câmera para a devida captura com o OpenCV. A Figura22apresenta o resultado da aquisição usando uma câmera sem modificações, e usando a câmera modificada, respectivamente a e b.

Figura 22: Diferença do resultado da aquisição entre: a) câmera normal e b) câmera modificada

Fonte: Próprio autor

O OpenCV permite, de maneira simples, a captura de frame a frame de uma câmera de vídeo e realiza o armazenamento das imagens em matrizes multidimensionais Mat, estrutura esta utilizada em todos os processamentos de imagem (OPENCV,2014a).

O acesso ao dispositivo de captura é realizado através de um objeto VideoCapture, que pode atribuir a uma variável do tipo Mat o conteúdo adquirido.

3.2.2

Pré-processamento

O primeiro passo no pré-processamento foi fazer a mudança no espaço de cor da imagem capturada pela câmera, usando a função cvtColor.

Capítulo 3. Materiais e métodos 41

No pré-processamento foi usado o filtro de mediana para remover os ruídos presentes durante a aquisição. A função usada foi a medianBlur com filtro de tamanho 3x3.

Os parâmetros passados para esta função são uma variável com a imagem original, uma segunda variável, onde é armazenada a imagem filtrada e o tamanho da janela de filtragem que deve ser ímpar e maior que 1 (OPENCV,2014a).

3.2.3

Segmentação

A segmentação da imagem é realizada através do processo de limiarização ou threshold. O valor escolhido para o limiar pode ser realizado de forma automática, usando o algoritmo de Otsu ou com limiar fixo após análise de histograma.

Será demonstrada na seção3.5a escolha do limiar de segmentação, a forma para escolha do limiar e comparação do algoritmo de Otsu e o limiar proposto.

3.2.4

Representação e descrição

Esta etapa do processamento é realizada da seguinte forma: O primeiro passo é utilizar uma ferramenta para identificação de possíveis objetos dentro da imagem. O OpenCV possui uma classe para isto, a SimpleBlobDetector.

Esta classe segmenta a imagem em vários limiares diferentes, de acordo com os parâme- tros estabelecidos que definem máximo, mínimo e degrau para mudança do limiar, e agrupa os possíveis resultados semelhantes, depois de procurar pelos contornos, devolvendo, no final, uma lista de pontos onde se encontram estes objetos (OPENCV,2014a).

A Figura23mostra as etapas de aquisição, pré-processamento e segmentação, repectiva- mente, a), b) e c). No resultado da segmentação é realizado o cálculo do momentum, calculando, assim, o ponto central da imagem segmentada.

Figura 23: Etapas do processamento: a) aquisição, b) Pré-processamento e, c) segmentação

Capítulo 3. Materiais e métodos 42

3.2.5

Reconhecimento e interpretação

Nesta etapa é realizada a localização do centro dos objetos encontrados e, a partir das informações de tamanho e formato, é escolhido o objeto desejado.

A forma do objeto a ser detectada é um feixe de luz sobre uma superfície. Este feixe de luz pode ter formato circular, achatado ou elipsóide (proveniente de uma inclinação do apontador), circular com rastro ou semicircular.

O tamanho do objeto a ser detectado também varia com a distância da câmera para a superfície de projeção e de sua resolução. Por exemplo, uma câmera com resolução espacial de 640x480, filmando uma área 2m x 1,5m, vai ter um pixel representando uma área de 3,1mm x 3,1mm.

Como pode ser visto na Figura24, o ângulo de espalhamento da luz infravermelha é pequeno, e como o led também tem um tamanho pequeno, 5mm, resulta em um ponto de luz muito pequeno. Assim, espera-se encontrar um objeto com área pequena, tendendo a um círculo. Figura 24: Intensidade radiante relativa vs deslocamento angular - LED 5mm Infrared - IR333-A

Fonte: (EVERLIGHT,2014)

Desta forma, a escolha do objeto que representaria o dispositivo apontador pode ser realizada com base nas informações acima descritas.

Capítulo 3. Materiais e métodos 43

de outros objetos, por não existir a possibilidade de encontrá-los na forma de uso proposta. Com isto, após ser calculado o centro da imagem resultante da segmentação, é realizada uma transformação de perspectiva, trazendo o ponto do espaço de captura da câmera para o espaço de coordenadas do computador.

No documento 2015.1 Carlos Emanuel Gomes Sousa (páginas 39-44)

Documentos relacionados