TÍTULO: APLICAÇÃO PARA RECONHECIMENTO DE GESTOS, USANDO A CAMADA INFERIOR OPENCV



Documentos relacionados
Tutorial de Instalação do OpenCV 2.3

Manual do Teclado de Satisfação Online WebOpinião

Notas de versão. Versão

O Primeiro Programa em Visual Studio.net

Portaria Express 2.0

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

MANUAL WEBDRIVE. webdrive.whirlpool.com.br

GNU Image Manipulation Program, mais conhecido pelo acrônimo GIMP.

VERSÃO: 1.3 TÍTULO: GUIA DE INÍCIO RÁPIDO CLIENTE: FUNCEF

O Sistema foi inteiramente desenvolvido em PHP+Javascript com banco de dados em MySQL.

Movie Maker. Fazer download de vídeos no You Tube. Para publicar no You Tube. O Windows Movie Maker 2 torna fácil para qualquer pessoa

Capítulo 13 Pastas e Arquivos

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

Sumário. 1. Instalando a Chave de Proteção Novas características da versão Instalando o PhotoFacil Álbum 4

Introdução ao icare 2

SIE - SISTEMA DE INFORMAÇÕES PARA O ENSINO CADASTRO DE FUNCIONÁRIOS

ROTEIRO PARA EMISSÃO DE CERTIFICADO DIGITAL A1

Manual do Usuário. Protocolo

Para o PowerPoint, assim como para vários softwares de apresentação, uma apresentação é um conjunto de slides.

O QUE É A CENTRAL DE JOGOS?

MANUAL DE EMISSÃO E INSTALAÇÃO DO CERTIFICADO TIPO A1 (GOOGLE CHROME)

TUTORIAL PARA UTILIZAÇÃO DA PLATAFORMA LMS

Superintendência Regional de Ensino de Ubá - MG Núcleo de Tecnologia Educacional NTE/Ubá. LibreOffice Impress Editor de Apresentação

Aula 01 Conceitos Iniciais sobre Excel 2010

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

MODELIX SYSTEM SOFTWARE DE PROGRAMAÇÃO DE ROBÔS

Projeto ECA na Escola - Plataforma de Educação à Distância

Manual de Instalação da Plataforma Scorpion. 1. Como conectar a Plataforma Scorpion com a Xilinx Starter-3E kit

Manual de utilização do Instalador para Parceiros DJSystem

Procedimento para instalação do BLACKBERRY Software de Imagem via Celular

MANUAL DE UTILIZAÇÃO DO PLUGIN GERADOR DE PLUGINS DO TERRAVIEW

Virtual Box. Guia. Instalação E Utilização. Criado por Wancleber Vieira wancleber.vieira@ibest.com.br

MULTIACERVO Implementações da versão 20-1

PÓS-GRADUAÇÃO EM MATEMÁTICA COMPUTACIONAL INFORMÁTICA INSTRUMENTAL Aula 06: Introdução Linguagem HTML

Descrição do Produto. Altus S. A. 1

BR DOT COM SISPON: MANUAL DO USUÁRIO

MANUAL DO PROFESSOR. Suporte: SISTEMA DE GESTÃO EDUCACIONAL VIRTUALCLASS. Skype: suportetisoebras

LASERTECK SOFTECK FC MANUAL DO USUÁRIO

MOODLE NA PRÁTICA PEDAGÓGICA

Veja em Tela cheia abaixo: Página nº 2

Manual do Usuário - ProJuris Web - Biblioteca Jurídica Página 1 de 20

Parâmetros de Utilização e Manutenção das Mensagens do Informa Online Maio 2007

UNIVERSIDADE FEDERAL DO AMAPÁ PRÓ REITORIA DE ADMINISTRAÇÃO E PLANEJAMENTO DEPARTAMENTO DE INFORMÁTICA. Manual do Moodle- Sala virtual

Cobrança Bancária. Contas / Manutenção.

Introdução a Computação

Soluções de Acessibilidade. VLibras - Desktop. Manual de Instalação da Ferramenta. Microsoft Windows R. Núcleo de Pesquisa e Extensão / LAViD

INSTALAÇÃO DO FIREFOX E JAVA PORTÁVEL CUSTOMIZADO PELO TRT DA 13ª REGIÃO

COM O BROFFICE IMPRESS

Para o OpenOffice Impress, assim como para vários softwares de apresentação, uma apresentação é um conjunto de slides.

CENTRO UNIVERSITÁRIO DE ENSINO SUPERIOR DO AMAZONAS - CIESA CENTRO DE PROCESSAMENTO DE DADOS CPD MANUAL DE UTILIZAÇÃO DO MOODLE 2.

Manual e Documentação

DANDO OS PRIMEIROS PASSOS COM O GVSIG 1.1.1

Passo a Passo do Cadastro Funcionários no SIGLA Digital

COORDENAÇÃO DE EAD MANUAL DE UTILIZAÇÃO DO MOODLE 2.6 PERFIL ALUNO. Versão 1.0

Linguagem de Programação

Como produzir e publicar uma apresentação online dinâmica (Prezi)

UNIVERSIDADE ESTADUAL DA PARAÍBA CENTRO DE CIÊNCIAS E TECNOLOGIA DEPARTAMENTO DE QUÍMICA CURSO DE LICENCIATURA EM QUÍMICA LINDOMÁRIO LIMA ROCHA

O ENSINO DE CÁLCULO NUMÉRICO: UMA EXPERIÊNCIA COM ALUNOS DO CURSO DE CIÊNCIA DA COMPUTAÇÃO

CADSUS STAND ALONE Cadastro Nacional de Usuários do SUS. Manual de Instalação. Versão 1.5.0

Simulador PMP - 4º Edição Exame de Certificação do PMI

Manual de Comunidades RIPALC

Backup e Recuperação Guia do Usuário

PowerPoint 2010 para o Office 365 para empresas

MANUAL DE INSTALAÇÃO/UTILIZAÇÃO DO PEDIDO ELETRÔNICO

MANUAL DE UTILIZAÇÃO DOMINIO ATENDIMENTO

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

MANUAL DA SECRETARIA

Medical Office 2015 Instruções de Instalação e Configuração

Linguagens de. Aula 01. Profa Cristiane Koehler

O Windows também é um programa de computador, mas ele faz parte de um grupo de programas especiais: os Sistemas Operacionais.

Programação em papel quadriculado

Manual básico de utilização da Mesa Tátil

TÍTULO: KOUPHÓS IMPLEMENTAÇÃO DE UM SISTEMA PARA AUXÍLIO/TRADUÇÃO DE LIBRAS-ASL

Guia de Procedimentos

Linguagem de Programação Procedural (VB) Prof. MSc Eng Marcelo Bianchi AULA 01 - INTRODUÇÃO AO VB

Sistemas Operacionais. Curso Técnico Integrado Profa: Michelle Nery

Ambiente Visual para o Desenvolvimento de Jogos Eletrônicos

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word Sumário

Montagem e Manutenção. Luís Guilherme A. Pontes

BIBLIOTECA PARA ANÁLISE DE DADOS EM IMAGENS ESTEREOSCÓPICAS

Atualizações de Software Guia do Usuário

O Windows é um software de sistema, que permite ao utilizador interagir com o computador e com os seus periféricos.

TUTORIAL ORGANIZAÇÃO DE EVENTOS

Professor: Venicio Paulo Mourão Saldanha Site:

Medidor Powersave V2 USB

Simão Pedro P. Marinho, Ramon Orlando de Souza Flauzino NARRATIVAS DIGITAIS

DELPHI 7 LINGUAGEM DE PROGRAMAÇÃO AMBIENTE CLIENTE SERVIDOR

Sumário. Administração de Banco de dados Módulo 12. Ilustração Backup-Recovery. Recuperação (Recovery) - Definição

FS Sistema: Futura Server. Caminho: Contas a Receber>Boleto>Boleto Baixa. Referência: FS Versão:

Manual de Utilização

Ambiente de Simulação Virtual para Capacitação e Treinamento na Manutenção de. Disjuntores de Subestações de Energia Elétrica,

JOOPP O construtor de sites mais rápido do mundo!

Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++.

Guia do Usuário. idocs Content Server v

NewAgent enterprise-brain

Migrando para o Word 2010

4 Experimentos Computacionais

Tutorial Moodle Visão do Aluno

Transcrição:

Anais do Conic-Semesp. Volume 1, 2013 - Faculdade Anhanguera de Campinas - Unidade 3. ISSN 2357-8904 TÍTULO: APLICAÇÃO PARA RECONHECIMENTO DE GESTOS, USANDO A CAMADA INFERIOR OPENCV CATEGORIA: EM ANDAMENTO ÁREA: ENGENHARIAS E TECNOLOGIAS SUBÁREA: COMPUTAÇÃO E INFORMÁTICA INSTITUIÇÃO: FACULDADE ANHANGUERA DE BELO HORIZONTE AUTOR(ES): WARLEM LUCIO LIMA, AUGUSTO SÉRGIO TEIXEIRA REIS ORIENTADOR(ES): SANDRO RENATO DIAS

Aplicação para reconhecimento de gestos, usando a camada inferior OpenCV Resumo Este artigo consiste no estudo detalhado da biblioteca OpenCV para o desenvolvimento de um software que compreenda os movimentos e gestos de um usuário a fim de realizar uma tradução dos sinais de LIBRAS para Português e vice-e-versa, facilitando a comunicação e interação entre os surdos e as pessoas não portadoras da deficiência, promovendo a integração e estreitando o relacionamento desses dois grupos de convívio. De uma forma simples e barata e sem que haja a necessidade da intermediação de um intérprete. Palavras-chave: LIBRAS, OPENCV, WEBCAM, Reconhecimentos de gestos. Introdução Com o avanço da tecnologia visão computacional que hoje se encontra presente em celulares, televisões e tablets melhorando a forma de interação homem-máquina, podem notar que pouco se constrói para melhorar a relação do homem consigo mesmo. No convívio social, os Surdos sofrem com a dificuldade de se comunicar com aqueles que não são, pois é pequeno o número de indivíduos sem a deficiência que se dispõe a estudar a Linguagem Brasileira de Sinais (LIBRAS). Este projeto parte da necessidade de elaborar uma aplicação computacional de baixo custo que venha integrar os indivíduos surdos e não surdos sem maiores problemas, facilitando o convívio particular entre seus parentes e amigos, e o convívio público, tais como aulas, eventos, palestras e em estabelecimentos comerciais. Segundo Siola (2010), ele demostra que é possível usando a biblioteca OpenCV desenvolver uma aplicação que compreenda os sinais previamente armazenados, e conforme Maregoni (2011), todos os movimentos necessários para interpretação de LIBRAS podem ser capturados, desde que usadas as funções corretas dependendo de cada situação em que as imagens produzidas pelo dispositivo de vídeo são encontradas.

Expressões faciais também fazem parte da linguagem de sinais, conforme é mostrado em LIBRAS em contexto: Curso básico: Livro do estudante (FELIPE, 2012, p.34). A aplicação deverá perceber o rosto e mãos, bem como a distância entre eles no momento de execução do movimento em Libras. Existem alguns exemplos de códigos que reconhecem o rosto humano usando a biblioteca OpenCV. Alguns dos códigos mais enxutos, são de autoria de Thakkar (2012), que além de reconhecer partes do corpo humano, também consegue indicar através de um retângulo na imagem, a parte do corpo humano reconhecida. A biblioteca OpenCV (Open Source Computer Vision) foi desenvolvida na linguagem C/C++. É uma biblioteca de código aberto e foi desenvolvida inicialmente pela Intel Corporation. O OpenCV contem ferramentas de interpretação de imagens, como a análise de movimentos e reconhecimento de padrões. Tal biblioteca pode ser usada em diversas linguagens de programação como Java, Python, Visual Basic, Android, C/C++. O projeto será desenvolvido em C/C++ e o seu principal foco é a captura de imagens, mais especificadamente, imagens do rosto, mãos e dedos. Serão captados os movimentos com as mãos em Libras para a criação de uma base de dados que será usada no processo de tradução de Libras/Português. Uma vez entendido o funcionamento do OpenCV, as possibilidades são infinitas, um bom exemplo é o desenvolvimento de aplicações usando OpenCV para dispositivos móveis. O hardware que será utilizado para o desenvolvimento será uma câmera HD (High Definition ou Alta Definição), em específico, será utilizada a câmera de modelo C270 de 1280 x 720 pixels do fabricante Logitech. Objetivos O principal objetivo deste estudo e pesquisa, é obter um conhecimento profundo da biblioteca OpenCV e o desenvolvimento de uma aplicação que utilize tal biblioteca para capturar movimentos e comparar os mesmos com os movimentos pertencentes à linguagem LIBRAS.

Descobrir como usar as funções disponíveis nesta biblioteca para solução de todas as necessidades da compreensão de sinais de LIBRAS, e analisar até qual ponto será interessante e viável a utilização de cada uma delas. Metodologia O desenvolvimento consistirá em obtenção de exemplo de códigos e testes das funções contidas na biblioteca OPENCV, pois pouco se acha na literatura brasileira devido à particularidade do projeto que consiste em interpretar sinais de LIBRAS, com o intuito de melhor avaliar a aplicação e condições para leitura e captura dos movimentos. Essa avaliação se dará com a captura de diferentes vídeos, de uma Webcam de alta resolução, que tenham os mesmos sinais e utilizem mãos e rosto feitos por pessoas e ambientes diferentes. Para ter o maior numero de diversidades com o objetivo de alcançar as mesmas interpretações de sinais correspondentes, comparando o tempo gasto em cada momento. O OPENCV dentre outras bibliotecas se destaca pelo uso de vídeos em formatos comuns, gravados a partir de qualquer dispositivo de gravação de vídeo, tais como Webcam, Celular, Câmera de vídeo e Placa de Captura de Vídeo. Escrito para várias linguagens de programação, possibilitando a utilização em várias plataformas. Com base nas pesquisas realizadas até então, será desenvolvido em c++ pela vasta utilização, por ser uma linguagem simples, bem discutida e com uma diversidade maior de literatura disponível. Isso nos ajudará na dedicação à compreensão do reconhecimento feito pela biblioteca e como diferenciar o movimento junto ao corpo do usuário. Desenvolvimento Como o OpenCV se trata de uma biblioteca externa, que não é nativa de nenhuma IDE de programação, é necessário adquirir o arquivo base no site e extraí-los de preferência na raiz do sistema. Por não ser escrita para um tipo específico de IDE é preciso criar os arquivos que serão usados de acordo com o tipo de sistema, x86 e x64,

e a IDE, que neste caso será o Visual Studio 2012. No site oficial do OpenCV há um tutorial completo, mas o que será mostrado é um resumo do que realmente é preciso para que as bibliotecas funcionem corretamente. Definido o tipo de sistema e IDE é necessário utilizar o programa CMake para criar a biblioteca compatível. No campo referente ao Where is the source code: no CMake basta indicar o local onde foi extraído o OpenCV, e no próximo Where to build the binaries:, onde os arquivos da nova biblioteca compatível serão criados. Agora é preciso usar os arquivos indicados para gerar o projeto que criará a biblioteca compatível. Na parte inferior do programa existe o botão Configure, que ao ser clicado irá executar o processo de configuração dos arquivos conforme a IDE desejada. Caso haja algum erro nesta etapa, clique no botão Configure novamente. Feito isso, basta gerar o pressionando o botão Generate. Dentro do diretório onde foram gerados os arquivos, existe um projeto do Visual Studio, é ele quem criará os arquivos da biblioteca com a ajuda da IDE. Basta abri-lo, e dentro do Visual Studio compilar o arquivo BUILD_ALL, posteriormente o arquivo denominado INSTALL. Observe que na parte superior da interface da IDE existe um campo com o nome DEBUG, os arquivos criados para a biblioteca até agora só foram criados para este tipo e é preciso também criar para o tipo RELEASE, selecione na lista suspensa e repita o processo de compilar o arquivo BUILD_ALL e ao terminar, compilar o INSTALL. Após essa etapa, a biblioteca do OpenCV será compatível com o seu sistema, estará pronta e localizada dentro do diretório Install, onde se encontra os arquivos criado pelo CMake, e para executar um programa que a utilize bastará ter na máquina os arquivos DLL da biblioteca, que podem ser facilmente incluídos manualmente na mesma pasta do executável gerado pelo projeto que será criado, ou inseridos no diretório sistem32 do Windows x86 ou syswow64 do Windows x64. Para facilitar a criação e execução dos programas que utilizarão os arquivos.dll, é necessário incluir nas variáveis de ambiente do Windows o caminho do diretório onde se encontram. Ao criar um novo projeto para o OpenCV deverá ser alterado na Janela Property Manager, que se encontra no menu View, a referência das bibliotecas

existentes para a nova biblioteca gerada. Dê um duplo clique em Debug Win32 e na lista de opções que será exibido do lado esquerdo, selecionar o item Linker, nele existem várias opções, selecione o item AllOptions e do lado direito terá a opção AdditionalDependencies onde deverá constar o nome dos ativos da biblioteca OpenCV, no campo que há do lado direito desta opção insira a lista a seguir: opencv_calib3d245d.lib; opencv_contrib245d.lib; opencv_core245d.lib; opencv_features2d245d.lib; opencv_flann245d.lib; opencv_gpu245d.lib; opencv_highgui245d.lib; opencv_imgproc245d.lib; opencv_legacy245d.lib; opencv_ml245d.lib; opencv_nonfree245d.lib; opencv_objdetect245d.lib; opencv_photo245d.lib; opencv_stitching245d.lib; opencv_superres245d.lib; opencv_ts245d.lib; opencv_video245d.lib; opencv_videostab245d.lib; Lembrado que estes arquivos são da versão 2.45 do OpenCV, caso seja usado uma versão mais recente pegue a lista dos novos arquivos na pasta Install\Lib de acordo com os arquivos contidos na pasta e a lista sugerida, lembrando que os arquivos com a letra d no final do nome são referentes ao Debug e os que não têm são do Release. Logo abaixo da opção anterior selecionada, há Additional Library Directories onde deverá ser colocado o caminho completo da pasta Install\Lib que se encontra na raiz dentro da pasta aonde foram gerados os arquivos pelo CMake.

Na opção C/C++ da janela Debug PropertyPages em AllOptions há do lado direito a Additional Include Directories que deve incluir o caminho da pasta do OpenCV\build\x86\vc10\lib. Estes passos devem se repetir para a Release Win32 da janela Property Manager. A lista dos arquivos para a biblioteca do Release que deve ser inserida em AdditionalDependencies é a mesma citada à cima retirando a letra d de cada nome. Para se certificar que todas as configurações foram realizadas com sucesso, basta realizar um teste incluindo o código criado por Thakkar (2012) na IDE: Executando o código da figura 1 é possível ativar a webcam HD e mostrar as imagens capturadas em uma janela. Para a leitura de sinais de LIBRAS será necessário o reconhecimento da posição do rosto e das mãos do interprete, e a partir deste reconhecimento a leitura do sinal de acordo com os movimentos realizados. Com o exemplo de código da figura 1 sugerido é possível entender melhor como a biblioteca trabalha com as imagens capturadas. Usando como auxílio à documentação do OpenCV, é possível compreender que a variável do tipo CvCapture, recebe da função cvcapturefromcam(), um frame do vídeo capturado pela Webcam. É possível também capturar de um arquivo de vídeo do tipo AVI, para isso é necessário o uso da função cvcapturefromavi(). Para que seja possível trabalhar com o frame da imagem capturada na variável do tipo CvCapture é necessário convertê-la para o tipo IplImage.

#include "stdafx.h" #include "opencv2/highgui/highgui.hpp" int main( int argc, const char** argv ){ CvCapture* capture; IplImage* frame = 0; while(true){ capture = cvcapturefromcam(1); frame = cvqueryframe( capture ); cvnamedwindow("sample Program", CV_WINDOW_AUTOSIZE); cvshowimage("sample Program", frame); int c = cvwaitkey(10); if( (char)c == 27 ) { exit(0); } } cvreleaseimage(&frame); return0; } Figura 1 Código que ativa WebCam e abre uma janela para mostrar o conteúdo da variável frame. Através da função cvqueryframe() recupera-se as informações a partir do frame em bits e preenche todas as variáveis necessárias da estrutura IplImage. Através de um laço de repetição com a função cvshowimage() é possível exibir cada valor desta estrutura de dados dando a percepção de um vídeo contínuo, sendo preciso passar como parâmetro para esta função o nome da janela onde será exibido o vídeo e o nome da variável IplImage. Quando a estrutura IplImage recebe os dados é possível comparar seus valores para a detecção de objetos e/ou partes do corpo humano passando-a como parâmetro à função pfacerectseq(), como demostrado no exemplo da Figura 2 criado por Thakkar(2012), que em um dos seus argumentos recebe outra variável do tipo CvHaarClassifierCascade contendo informações de um arquivo XML, a Figura 3 é um exemplo demostrando como é declarada a variável é sua ligação com este arquivo. É neste tipo de arquivo que os dados característicos de um objeto são armazenados para consultas futuras. O próprio OpenCV possui dados referentes às características gerais de rostos, olhos, orelhas...

Void detectanddisplay(iplimage* frame ) { CvSeq * pfacerectseq; pstorageface = cvcreatememstorage(0); cvclearmemstorage(pstorageface); pfacerectseq = cvhaardetectobjects (frame, face_cascade, pstorageface,1.1,3,0,cvsize(40, 40)); const char * DISPLAY_WINDOW = "HaarWindow"; int i; cvnamedwindow(display_window, CV_WINDOW_AUTOSIZE); for(i=0;i<(pfacerectseq? pfacerectseq->total:0); i++ ){ CvRect* r = (CvRect*)cvGetSeqElem(pFaceRectSeq, i); CvPoint pt1 = { r->x, r->y }; CvPoint pt2 = { r->x + r->width, r->y + r->height }; cvrectangle(frame, pt1, pt2, CV_RGB(255,255,6), 3, 4, 0); } cvshowimage(display_window, frame); } Figura 2 Função detectanddisplay() que mostra na janela do vídeo o objeto reconhecido. CvHaarClassifierCascade face_cascade = (CvHaarClassifierCascade *)cvload("c:\\opencv\\data\\haarcascades\\haarc ascade_frontalface_alt_tree.xml", 0, 0, 0); Figura 3 Exemplo de declaração da variável do tipo CvHaarClassifierCascade. Baseado nestes exemplos será criado um código que possa capturar rosto, mãos, dedos e seus respectivos movimentos. Resultados Estudos sobre o funcionamento do OpenCV foram e estão sendo realizados. A compreensão do uso de diversas funções nativas da biblioteca, bem como seus parâmetros, chamadas e funcionalidade de um modo geral. Conforme as figuras 4 e 5, a partir do conhecimento adquirido, conseguiu se usar o OpenCV para detectar partes do corpo humano, etapa de suma importância para o alcance do objetivo principal do projeto.

Figura 4 - Detecção do rosto. Figura 5 - Detecção da mão. Considerações Finais Apesar do grau de dificuldade encontrado para o funcionamento da biblioteca OpenCV nos diferentes tipos de sistema(x86 e x64), os resultados foram satisfatórios devido ao sucesso na execução dos códigos usados como exemplos.

O sucesso no reconhecimento do rosto e mão, mesmo com ruído de óculos e fones, dá respaldo para a continuidade da pesquisa, projetando grandes resultados que podem ser obtidos com o estudo detalhado da biblioteca. Fontes Consultadas AJA Associação do Jovem Aprendiz. O que é LIBRAS. Disponível em: <http://www.libras.org.br/libras.php.>acesso em 26. nov. 2012. FELIPE, Tanya A. LIBRAS em contexto: Curso básico: Livro do estudante. 8. ed. Rio de Janeiro: WalPrint, 2007. OpenCV. Disponível em: <http://opencv.org/>. Acesso em: 25. Nov. 2012. OpenCV 2.0 C Refence. Disponível em: <http://opencv.willowgarage.com/documentation/index.html>. Acesso em:15 mar. 2013. CMake. Disponível em: <http://www.cmake.org/cmake/resources/software.html>. Acesso em: 15 mar. 2013. SIOLA, Felipe Breve. Desenvolvimento de um software para reconhecimento de sinais em LIBRAS através de vídeo, 2010. Tese (Graduação em Ciência da Computação) Curso Bacharelado em Ciência da Computação, Universidade Federal do ABC, 2010. Disponível em: <http://bcc.ufabc.edu.br/docs/pg3-final-felipesiola-q3-2010.pdf>. Acesso em: 01 abr. 2013. MAREGONI, Maurício e STRINGHINI, Denise. Tutorial: Introdução à Visão Computacional usando OpenCV, 2011. Disponível em: <http://seer.ufrgs.br/index.php/rita/article/viewfile/rita_v16_n1_p125/7289>. Acesso em: 02 abr. 2013. THAKKAR, Karan. Using OpenCV 2.4.2 with Visual studio 2012 on Windows, 2012. Disponível em: <http://karanjthakkar.wordpress.com/2012/11/21/usin-opencv-2-4-2-with-visualstudio-2012-on-windows-7-64-bit/>. Acesso em: 30 jun. 2013. 10