Você está na página 1de 25

TEM – Sistemas de Visão

Parte 01: Introdução ao Processamento de Imagens Digitais

Material produzido por:


Mário Lucio Roloff, DAMM/IFSC
Maurício Edgar Stivanello, DAMM/IFSC
Marcelo Ricardo Stemmer, DAS/UFSC
Sumário

 Conceitos básicos
 Descrição do ambiente de desenvolvimento
 Exemplos
 Exercícios

2 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão


Introdução e Prática com
Imagens Digitais

3 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão


PDI – Propriedades da Imagem

 Formação e aquisição da imagem

Etapas de formação das imagens em um sistema de visão

4 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão


Representação básica de imagens
digitais

 Como representar imagens?

5 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão


Representação básica de imagens
digitais
 Imagens digitais
 Vetorial: representação onde são
utilizadas primitivas geométricas
Vetor
como pontos, linhas, curvas ou
outras formas, todas descritas por
suas definições matemáticas.

 Mapa de bits (Raster, bitmap):


Bitmap
representação onde é utilizada uma
grade formada por pontos. Cada
ponto pode assumir uma cor
diferente, e desta forma a imagem é
formada como em um mosaico.

6 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão


Representação básica de imagens
digitais
 Imagens digitais são representadas como agrupamento
de pontos
 Os pontos (ou Pixels) embutem informação de:
– Espaço
– Intensidade

7 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão


Representação básica de imagens
digitais
 Modelos de cor: Tons de cinza

8 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão


Representação básica de imagens
digitais
 Modelos de cor: RGB

9 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão


Representação básica de imagens
digitais

 Como manipular imagens digitais utilizando uma


linguagem de computador?

10 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão


Ferramentas de Desenvolvimento
OpenCv

11 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão


OpenCV

 Open Source Computer Vision Library


 Uma biblioteca para PDI/VC escrita em C/C++
 Diversas otimizações em C/C++
 Diversos algoritmos têm implementação em GPU
 APIs para C++, Java e Python
 Disponível para várias plataformas
 Windows / Unix / Android ...

12 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão


Aspectos importantes

 Utilizada extensivamente pela comunidade de VC


 IBM, Microsoft, Intel, Sony, Siemens, Google,...
 Stanford, MIT, CMU, Cambridge, INRIA, USP,...
 Licença BSD permite o desenvolvimento de
 software livre
 comercial

13 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão


História

 1999 OPENCV nasce na Intel  2009 Lançamento da versão


 2000 Primeira versão Beta 2.0
 2006 Lançamento da versão 1.0  2011 Versão 2.3.1
 2008 Willow Garage assume o
 2012 Versão 2.4
desenvolvimento
 2013 Versão 2.4.6, API para
Java
 ...
 Atual Versão 4.1.1

14 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão


Núcleos/Módulos

15 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão


CxCORE

 Define as estruturas e operações que permitem realizar a


edição e manipulação básica de imagem.
 Estrutura Principal:
 Mat: Representa uma imagem na memória na qual podemos
realizar diversas operações matemáticas.
 Contém diversas características das imagens: Pontos, Número
de canais de cor; Profundidade (resolução de tonalidades);
Tamanho (largura e altura); dentre outros . . .

16 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão


CxCORE

 Outras estruturas básica:


 Rect: define regiões de interesse nas imagens
 Point: define coordenadas de um ponto da imagem
 Size, ...
 Estruturas Dinâmicas:
 Sequências
 Conjuntos
 Grafos

17 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão


CxCORE

 Operações de Manipulação de Imagens


 Básicas (identidade, negativa, exponencial,
logarítmica)
 Aritméticas (+, -, *, /)
 Lógicas (E, OU, NAO)
 Estatísticas (média, variância)
 Álgebra Linear (autovalor, autovetor, determinante)
 Transformadas (DFT, DCT)

18 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão


CV

 Apresenta diversas ferramentas para manipulação de


imagens
 Conversão de Espaços de Cor
 Estatísticas (histogramas)
 Filtragem (espaço e frequência; smoothing e sharpening)
 Morfológicas (dilatação, erosão, abertura, fechamento)
 Segmentação (similaridade, descontinuidade)
 Transformadas (Hough)
 Motion Tracking
 Reconhecimento de Padrões
 Calibração de Câmeras e Reconstrução 3D

19 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão


HighGUI

 Disponibiliza o controle dos seguintes componentes:


 Gestão de um ambiente de janelas
 Gestão de entradas do usuário
 Leitura/Gravação de imagens
 Aquisição de imagens

20 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão


Prática
Exemplos e Exercícios

21 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão


Exemplos

Ambiente de Desenvolvimento
 Visão Geral das ferramentas

OpenCv 4.1.1 compilada com MinGw x86_64

IDE Code::Blocks portátil e


com compilador incluído

Imagens e vídeos de exemplo

Projeto para o Code::Blocks já configurado para utilizar a OpenCv, seguindo


Organização de diretórios apresentada. Obs: pode ser copiado e renomeado
para a criação de novos projetos.

22 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão


Exemplos

Exemplos práticos
1. Criar e exibir uma imagem em tons de cinza que contenha o fundo preto e um
ponto branco no centro. (Projeto base – funcao_exemplo_01)
2. Criar e exibir uma imagem que contenha um retângulo vermelho. (Projeto base
– funcao_exemplo_02)
3. Ler e exibir a imagem Lena.jpg tanto em cinza quanto em cores. (Projeto base
– funcao_exemplo_03)
4. Ler e escurecer a imagem Lena.jpg em cinza e salvá-la com outro nome.
(Projeto base – funcao_exemplo_04)
5. Ler e escurecer a imagem Lena.jpg em cores e salvá-la com outro nome.
(Projeto base – funcao_exemplo_05)
6. Carregar a imagem frasco.jpg em cinza e torná-la binária (pontos em preto ou
branco), separando o fundo do frasco. (Projeto base – funcao_exemplo_06)

23 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão


Exercícios

1)Criar imagem em cinza com dimensão 500X500 contendo uma linha diagonal.
2)Crie uma imagem de 255 por 255 que contenha um gradiente de intensidades
(degradê).
3)Carregar a imagem lena.jpg em cinza e descobrir a intensidade média.
4)Carregar a imagem lena.jpg em cinza e gerar a imagem negativa.
5)Carregar duas imagens em cinza (paris_a.jpg e paris_b.jpg) e combiná-las (média
das intensidades).
6)Carregue as imagens corredor.bmp e corredorobjeto.bmp em cinza. Faça a
diferença absoluta entre a primeira e a segunda imagem.
7)Carregar a imagem lena.jpg e espelhá-la verticalmente.
8)Carregar a imagem madeira.jpg em cinza e torná-la binária. Em seguida,
apresentar a localização do centro de gravidade do nó de madeira.

24 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão


Dúvidas?

33 | Mecatrônica – DAMM – IFSC TEM – Sistemas de Visão

Você também pode gostar