A biblioteca OpenCV é uma biblioteca de visão computacional de código aberto que fornece funções para processamento de imagem em tempo real. Ela possui interfaces para C/C++, Python e Java e suporte para Windows, Linux, Android e Mac OS. O documento explica como instalar e usar a biblioteca para carregar, processar e analisar imagens.
2. 3
O que é a OpenCV?
• OpenCV (Open Source Computer Vision) é
uma biblioteca de programação com
funções de visão computacional de tempo
real.
• Distribuída sob a licença BSD.
• Possui interfaces para C/C++, Python e
Java.
• Possui suporte para Windows, Linux Android
e Mac OS.
3. 4
Instalação
• Ubuntu
o através do repositório
o apt-get install libopencv-dev
o compilando o código fonte
o faça download do código fonte em
https://github.com/Itseez/opencv
o dentro da pasta descompactada crie uma pasta
opencv.build
o dentro da pasta criada execute no terminal
cmake .. depois make e sudo make install
4. 5
Compilando um código fonte
Para compilar um projeto é preciso informar
para o compilador onde estão localizadas as
bibliotecas do opencv.
• g++ source.cpp -o target `pkg-config opencv
--cflags --libs `
5. 6
Introdução à biblioteca
A biblioteca OpenCV é dividida em módulos
onde temos:
• core - define as principais estruturas de
dados utlizadas pela biblioteca. Ex.: Mat e
Point.
• improc - Módulo de processamento de
imagem que inclui filtros lineares e não
lineares além de transformações
geométricas.
6. 7
Introdução à biblioteca
• highgui - Módulo com funções de interface
como criação de janelas.
• Outros módulos em:
http://docs.opencv.org/trunk/modules/core/doc/in
8. 9
Converter imagem de um espaço
de cores para outro
• Um espaço de cor nada mais é do que um
modelo matemático usado para descrever
cada cor a partir de fórmulas.
• Para converter uma imagem de um espaço
de cores para o outro utilizamos a função
cvtColor.
void cvtColor(InputArray src, OutputArray dst,
int code, int dstCn=0 )
11. 12
Limiarização
• Consiste na técnica de classificar o pixel
dividindo o histograma através de um limiar.
• Para realizar esta operação o OpenCV
fornece a função Threshold.
threshold(InputArray src, OutputArray dst,
double thresh, double maxval, int type)
14. 15
Encontrando contornos
• Para encontrar contornos utilizamos a
função findContours.
void findContours(InputOutputArray image,
OutputArrayOfArrays contours, int mode, int
method, Point offset=Point())
15. 16
Encontrando contornos
• Modos
o CV_RETR_EXTERNAL: Busca apenas o
contorno externo da imagem.
o CV_RETR_LIST: Busca por todos os
contornos da imagem e os armazena sem
estabelecer uma hierarquia entre eles.
16. 17
Encontrando contornos
• continuação
o CV_RETR_CCOMP: Separa os
contornos em uma hierarquia de dois
níveis. No nível mais alto ficam os
contornos externos enquanto no nível
inferior ficam os contornos internos.
17. 18
Encontrando contornos
• Métodos:
o CV_CHAIN_APPROX_NONE: Armazena
todos os pontos do contorno.
o CV_CHAIN_APPROX_SIMPLE:
Comprime os seguimentos horizontais,
verticais e diagonais apenas no seu ponto
final.
18. 19
Encontrando contornos
• Para desenhar o contorno utilizamos a
função DrawContours.
void drawContours(InputOutputArray
image, InputArrayOfArrays contours, int
contourIdx, const Scalar& color, int
thickness=1, int lineType=8 )