Introdução à biblioteca OpenCV

10,729 views

Published on

Slides da aula de introdução à biblioteca OpenCV

Published in: Education

Introdução à biblioteca OpenCV

  1. 1. Introdução à bibliotecaOpenCVLuiz Augusto Volpi Nascimento
  2. 2. 3O que é a OpenCV?• OpenCV (Open Source Computer Vision) éuma biblioteca de programação comfunções de visão computacional de temporeal.• Distribuída sob a licença BSD.• Possui interfaces para C/C++, Python eJava.• Possui suporte para Windows, Linux Androide Mac OS.
  3. 3. 4Instalação• Ubuntuo através do repositórioo apt-get install libopencv-devo compilando o código fonteo faça download do código fonte emhttps://github.com/Itseez/opencvo dentro da pasta descompactada crie uma pastaopencv.buildo dentro da pasta criada execute no terminalcmake .. depois make e sudo make install
  4. 4. 5Compilando um código fontePara compilar um projeto é preciso informarpara o compilador onde estão localizadas asbibliotecas do opencv.• g++ source.cpp -o target `pkg-config opencv--cflags --libs `
  5. 5. 6Introdução à bibliotecaA biblioteca OpenCV é dividida em módulosonde temos:• core - define as principais estruturas dedados utlizadas pela biblioteca. Ex.: Mat ePoint.• improc - Módulo de processamento deimagem que inclui filtros lineares e nãolineares além de transformaçõesgeométricas.
  6. 6. 7Introdução à biblioteca• highgui - Módulo com funções de interfacecomo criação de janelas.• Outros módulos em:http://docs.opencv.org/trunk/modules/core/doc/in
  7. 7. 8Carregando uma imagem de umarquivo
  8. 8. 9Converter imagem de um espaçode cores para outro• Um espaço de cor nada mais é do que ummodelo matemático usado para descrevercada cor a partir de fórmulas.• Para converter uma imagem de um espaçode cores para o outro utilizamos a funçãocvtColor.void cvtColor(InputArray src, OutputArray dst,int code, int dstCn=0 )
  9. 9. 10Converter imagem de um espaçode cores para outro
  10. 10. 11Acessando o valor de um pixel
  11. 11. 12Limiarização• Consiste na técnica de classificar o pixeldividindo o histograma através de um limiar.• Para realizar esta operação o OpenCVfornece a função Threshold.threshold(InputArray src, OutputArray dst,double thresh, double maxval, int type)
  12. 12. 13Limiarização
  13. 13. 14Limiarização
  14. 14. 15Encontrando contornos• Para encontrar contornos utilizamos afunção findContours.void findContours(InputOutputArray image,OutputArrayOfArrays contours, int mode, intmethod, Point offset=Point())
  15. 15. 16Encontrando contornos• Modoso CV_RETR_EXTERNAL: Busca apenas ocontorno externo da imagem.o CV_RETR_LIST: Busca por todos oscontornos da imagem e os armazena semestabelecer uma hierarquia entre eles.
  16. 16. 17Encontrando contornos• continuaçãoo CV_RETR_CCOMP: Separa oscontornos em uma hierarquia de doisníveis. No nível mais alto ficam oscontornos externos enquanto no nívelinferior ficam os contornos internos.
  17. 17. 18Encontrando contornos• Métodos:o CV_CHAIN_APPROX_NONE: Armazenatodos os pontos do contorno.o CV_CHAIN_APPROX_SIMPLE:Comprime os seguimentos horizontais,verticais e diagonais apenas no seu pontofinal.
  18. 18. 19Encontrando contornos• Para desenhar o contorno utilizamos afunção DrawContours.void drawContours(InputOutputArrayimage, InputArrayOfArrays contours, intcontourIdx, const Scalar& color, intthickness=1, int lineType=8 )
  19. 19. 20Encontrando contornos
  20. 20. 21Fonteshttp://opencv.org/http://docs.opencv.org/trunk/doc/tutorials/introduction/linux_install/linux_install.htmlhttp://docs.opencv.org/modules/refman.html

×