OpenCV
1. Introdução
O OpenCV é uma biblioteca concebida especialmente para o processamento e análise de imagens em tempo real e implementa algoritmos bem estabelecidos na literatura de Processamento de Imagens, Visão Computacional e Inteligência Artificial.
A biblioteca, originalmente desenvolvida pela Intel em 2000, tem uma implementação multiplataforma, totalmente livre para o uso acadêmico e comercial, distribuído sob licençaBSD. Ela possui módulos de Processamento de Imagens e Vídeo, estrutura de dados, álgebra linear, Interface Gráfica (GUI) com sistema de janelas independentes, controle de mouse e teclado, além de mais de 350 algorítmos de Visão Computacional (Processamento e Análise) como: filtros de imagem, calibração de câmera, reconhecimento de objetos, análise estrutural e outros. A biblitoeca possui versões disponíveis em Python, C++, C, Java e Android.
Através desta biblitoeca é possível desenvovler aplicações de processamento de imagens em tempo real.
2. Desenvolvimento de Algoritmos de PDI
Na figura a seguir é apresentado um diagrama básico das etapas de um algoritmo de processamento de imagens.
Resumidamente, a primeira etapa adquire a imagem em um formato adequado e passa para uma etapa de pré-processamento em que serão feitos uma série de ajustes para melhorar a qualidade da imagem.
Após o pré-processamento, é realizada uma etapa de segmentação em que são extraídos da imagem os objetos de interesse. Caso a segmentação não tenha excelentes resultados, pode ser feita uma etapa de pós-processamento para melhorar a qualidade da segmentação.
Com base em cada objeto segmentado, são extraídas informações e passadas por uma etapa de reconhecimento para tomar uma decisão. Eventualmente, após todo o processamento pode ser feito uma etapa de exibição de resultados, na qual são apresentadas uma série de informações sobre a imagem processada.
Nesta página serão apresentadas algumas funções utilizadas para o processamento de imagens em cada uma dessas etapas utilizando funções disponíveis na implementação C++ da biblioteca.
2.1 Aquisição de Imagens
Para adquirir imagens no OpenCV utiliza-se as seguintes funções:
2.1. Pré-processamento
Para realcar imagens (aplicar filtos passa-alta e passa baixa ou ajustar contraste) no OpenCV utiliza-se as seguintes funções:
2.2 Segmentação
Existem várias funções para a segmentação de imagens disponíveis no OpenCV, as mais simples são mostradas na tabela a seguir:
2.3 Extração de atributos
Para extrair informações de imagens segmentadas são utilizadas as seguintes funções:
2.4 Exibição de resultados
Para exbir imagens ou inserir anotações nas imagens, o OpenCV utiliza-se as seguintes funções:
3. Exemplos
imagem original
ajuste de contraste (contraste diminuido)
filtro passa-baixa gaussiano
filtro passa alta (laplaciano)
segmentação com limiar unico (thresholding)
segmentação utilizando o inRangeS
bounding rect
drawContours
4. Configuração
Ficou interessado na biblitoeca?
Nesta pagina encontra-se uma série de tutoriais que podem lhe auxiliar a utilizar a biblioteca.
Configurando o OpenCV no Raspberry2 — 31/08/2015 19:16:29
Configurando o Eclipse para desenvolver no OpenCV — 02/12/2014 19:43:18
Exemplo de Código Fonte para selecionar arquivos via interface gráfica — 02/12/2014 00:48:21
Compilando o OpenCV 2.4.9 com o MinGW — 24/11/2014 13:33:50
Codeblocks: Criando um projeto utilizando o OpenCV — 26/02/2012 03:08:17
Linux: Instalação do OpenCV no Ubuntu — 25/02/2012 04:23:52