63
Aula 3: Técnicas Básicas de PDI Instituto Federal de Educação, Ciência e Tecnologia do Ceará PPGER – PPGCC 1 Processamento Digital de Imagens Prof. Dr. Pedro Pedrosa pedropedrosa.maracanau.ifce.edu.br [email protected]

PDI - CHP3

  • Upload
    geilson

  • View
    239

  • Download
    2

Embed Size (px)

Citation preview

Page 1: PDI - CHP3

Aula 3: Técnicas Básicas de PDI

Instituto Federal de Educação, Ciência e Tecnologia do Ceará PPGER – PPGCC

1

Processamento Digital de Imagens Prof. Dr. Pedro Pedrosa

pedropedrosa.maracanau.ifce.edu.br

[email protected]

Page 2: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Tipos de operações •  Pixel-a-pixel

–  A matriz resultante, Z, é obtida calculando X operação Y = Z, onde X e Y podem ser imagens (matrizes) ou escalares, Z é necessariamente uma matriz. operação é uma operação de matemática binária (+, -, x, /) ou lógica (AND, OR, XOR).

•  De vizinhança –  O pixel resultante na coordenada (x,y) depende do seu valor original e

do valor dos pixeis seus vizinhos (Exemplo: convolução).

•  Linear –  H(af + bg) = aH(f) + bH(g)

•  Não linear –  As restantes operações.

2

Page 3: PDI - CHP3

Operações)

Pixel)a)Pixel)

3

Page 4: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Operações)Pixel)a)Pixel)

4

Varredura na imagem Jargão que significa percorrer a imagem toda…

Page 5: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Operações)com)matrizes/imagens)

5

Soma de matrizes

1) 2) 3)1) 2) 3)1) 2) 3)1) 2) 3)1) 2) 3)

+ =

f(x,y) g(x,y) s(x,y) + =

O mesmo é válido para subtração, multiplicação e divisão.

Page 6: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Operações Pixel a Pixel

6

s = T(r)

T(r)

s

r

Limiarização

Page 7: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Operações Pixel a Pixel

7

Exemplo:

Page 8: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE 8

Operações Pixel a Pixel

Exemplo:

Page 9: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Operações Pixel a Pixel

9

Realce:

Page 10: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Operações Pixel a Pixel

10

Contraste:

Page 11: PDI - CHP3

Operações)

Vizinhança)

11

Page 12: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Operações de vizinhança

12

[ ]* [ ] [ ] [ ]m

f n h n f m h n m∞

=−∞

= −∑

!  Convolução de duas funções contínuas:

!  Convolução discreta

( )* ( ) ( ) ( )f x h x f h x dα α α∞

−∞

= −∫

Page 13: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Operações de Vizinhança

13

1 2

1 2 1 2 1 2 1 1 2 2[ , ]** [ , ] [ , ] [ , ]m m

f n n h n n f m m h n m n m∞ ∞

=−∞ =−∞

= − −∑ ∑

!  Caso Discreto 2D

Page 14: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Operações)de)vizinhança)

14

Convolução 2D Forma de implementação…

Pixel da operação. Vizinho considerado

Page 15: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Exemplo

15

2 2 2 3

2 1 3 3

2 2 1 2

1 3 2 2

1 -1 -1

1 2 -1

1 1 1 h f

[ ]* [ ] [ ] [ ]m

f n h n f m h n m∞

=−∞

= −∑

Page 16: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE 16

Passo 1

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2 5

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2

1 -2 -1

2 4 -1

1 1 1

f f*h

h

1 -1 -1

1 2 -1

1 1 1 Exemplo

Page 17: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE 17

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2 4 5

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2

3 -1 -2

2 4 -2

1 1 1

f f*h

h

1 -1 -1

1 2 -1

1 1 1 Exemplo

Page 18: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE 18

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2 4 4 5

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2

3 -3 -1

3 4 -2

1 1 1

f f*h

h

1 -1 -1

1 2 -1

1 1 1 Exemplo

Page 19: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE 19

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2 4 4 -2 5

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2

1 -3 -3

1 6 -2

1 1 1

f f*h

h

1 -1 -1

1 2 -1

1 1 1 Exemplo

Page 20: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE 20

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2 4 4

9

-2 5

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2

2 -2 -1

1 4 -1

2 2 1

f f*h

h

1 -1 -1

1 2 -1

1 1 1 Exemplo

Page 21: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE 21

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2

6

4 4

9

-2 5

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2

1 -2 -2

3 2 -2

2 2 2

f f*h

h

1 -1 -1

1 2 -1

1 1 1 Exemplo

Page 22: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE 22

= 1 1 11 8 11 1 1

! "# $−# $# $& '

1 1 11 1 1 191 1 1

! "# $# $# $% &

* =

*

Filtro da média

Filtro laplaciando

Exemplo

Page 23: PDI - CHP3

Filtro)da)média)

Exemplo)de)convolução)2D)

23

Page 24: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE 24

Passo 1

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2 1

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2

1 2 1

2 2 1

1 1 1

f f*h

h

1 1 1

1 1 1

1 1 1 Exemplo

Page 25: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE 25

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2 2 1

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2

3 1 2

2 2 2

1 1 1

f f*h

h

1 1 1

1 1 1

1 1 1 Exemplo

Page 26: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE 26

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2 2 2 1

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2

3 3 1

3 2 2

1 1 1

f f*h

h

1 1 1

1 1 1

1 1 1 Exemplo

Page 27: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE 27

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2 2 2 2 1

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2

1 3 3

1 3 2

1 1 1

f f*h

h

1 1 1

1 1 1

1 1 1 Exemplo

Page 28: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE 28

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2 2 2

1

2 1

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2

2 2 1

1 2 1

2 2 1

f f*h

h

1 1 1

1 1 1

1 1 1 Exemplo

Page 29: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE 29

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2

1

2 2

1

2 1

3

2

1

2

2

1

3

2

3 2

2 1

2 2

3 2

1 2 2

3 1 2

2 2 2

f f*h

h

1 1 1

1 1 1

1 1 1 Exemplo

Page 30: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE 30

Operações de Vizinhança Filtro da Média

Page 31: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE 31

Operações de

Vizinhança Média local

Page 32: PDI - CHP3

Operações)

Vizinhança)

32

Page 33: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Operações de vizinhança

33

!  Vizinhança 3x3: !  Vizinhança 5x5: !  Vizinhança 7x7:

Page 34: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Operações de vizinhança

34

!  8 - Conectado: !  4 - Conectado:

Page 35: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Operações)de)vizinhança)

35

Convolução 2D Forma de implementação…

Pixel da operação. Vizinho considerado

Page 36: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Operações de vizinhança !  Filtro mediana:

1.  Ler todos os pixels da vizinhança 2.  Ordenar os pixels em ordem crescente 3.  O resultado será o pixel com velor médio

"  Máscara 3x3 = 9 pixels, então pegar o valor que estiver na posição 5

38)45)43)

50)250)

05)10)45)

40)

05) 10) 40) 43) 45) 45)38) 50) 250)

1. Ler pixels da vizinhança

2. Ordenar os pixels

3. Determinar a posição 5

4. Colocar o resultado de 3 na imagem resultante na mesma posição

Page 37: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Operações de vizinhança !  Filtro Prewit:

1.  Varrer a imagem 2.  Calcular Ph e Pv para cada ponto da imagem 3.  Calcular o resultado res para cada ponto e gerar uma nova imagem

"  O resultado será as bordas dos objetos presentes na imagem

1)0)G1)

1)G1)

1)0)G1)

0)

Máscara Horizontal (Ph)

1)1)1)

0)0)

G1)G1)G1)

0)

Máscara vertical (Pv)

Pixel de análise da vizinhança

Page 38: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Exemplo)do)Operador)Prewit)

38

Page 39: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Exemplo)do)Operador)Prewit)

39

Page 40: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Operações de vizinhança !  Filtro Sobel:

1.  Varrer a imagem 2.  Calcular Sh e Sv para cada ponto da imagem 3.  Calcular o resultado res para cada ponto e gerar uma nova imagem

"  O resultado será as bordas dos objetos presentes na imagem "  Resultado semelhante ao Prewit, mas realça mais alguns detalhes

1)0)G1)

2)G2)

1)0)G1)

0)

Máscara Horizontal (Sh)

1)2)1)

0)0)

G1)G2)G1)

0)

Máscara vertical (Sv)

Pixel de análise da vizinhança

Page 41: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE 41

Exemplo)do)Operador)Sobel)

Page 42: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Exemplo)do)Operador)Sobel)

42

Page 43: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Diferença)

43

Prewit Sobel

Page 44: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Diferença)

44

Prewit Sobel

Page 45: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Curiosidade)

45

1)2)1)

0)0)

G1)G2)G1)

0)

Máscara horizontal (Sh)

1)2)1)

0)0)

G1)G2)G1)

0)

Máscara vertical(Sv)

Page 46: PDI - CHP3

Limiarização)

Local)e)Global)

46

Page 47: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Limiarização)

•  MatemaPcamente,)a)limiarização)pode)ser)definida)como:))

)

47

•  Onde)f(x,y))e)́a)imagem)de)entrada,)T)é)o)valor)do)limiar)e)g(x,y))é)a)imagem)de)saída)(limiarizada).)

)

Page 48: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Limiarização)

48

•  A)escolha)do)limiar)influi)na)qualidade)da)limiarização.))

•  Em)geral,)um)bom)limiar)pode)ser)selecionado)se)os)picos)do)histograma)são)altos,)estreitos,)simétricos)e)separados)por)vales)profundos))

)

Page 49: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Limiarização)

49

•  Os)métodos)de)limiarização)têm)duas)abordagens)disPntas,)uma)global)e)outra)local.))–  Os)métodos)de)limiarização)globais)uPlizam)um)único)limiar)T)para)toda)

imagem.))

–  Os)métodos)de)limiarização)local)têm)como)princípio)dividir)a)imagem)em)subGregiões,)onde)cada)subGregião)tem)seu)limiar)específico.))

•  Em)função)das)caracterísPcas)da)imagem,)podem)ser)necessários)diferentes)valores)de)limiar)para)cada)região.))

•  Há)desvantagens)para)a)seleção)do)limiar)global)pela)dificuldade)de)se)encontrar)um)vale)entre)dois)picos.))

•  As)imagens)nem)sempre)contém)intensidades)bem)diferenciadas)entre)fundo)e)objeto)em)função)de)falta)de)contraste)e/ou)ruído.))

Page 50: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Limiarização)

50

•  Binarização*•  Limiar comum, só que a imagem final g só possui 1 bit para cada

pixel de coordenadas (x,y), então cada pixel assume apenas o valor 0 ou o valor 1, por isso o termo binário.

•  A imagem gerada ocupa menos espaço em seu armazenamento.

Page 51: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Limiarização)

51

•  MulPlimiarização)

Onde f(x,y) é a imagem de entrada, T1 e T2 são os valores dos limiares e g(x,y) é a imagem de saída (limiarizada).

Page 52: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Limiarização)

52

•  Limiares)automáPcos)–  Otsu)– Média)local/Global)

– Média)máximo/minimo)

–  Johansen)–  AdaptaPvo)–  Niblack)

Page 53: PDI - CHP3

Como)processar)uma)imagem?)

Onde)processar)uma)imagem?)

53

Page 54: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Como Processar uma Imagem •  O Toolbox de Processamento de Imagens do MATLAB possui

um grande conjunto de operações de processamento de imagens;

•  A biblioteca OpenCv pode ser utilizada em C, C++, Java, Python;

•  Operações: –  Operações Geométricas –  Operações Pontuais e em Bloco –  Filtragem Linear –  Transformadas –  Análise de Imagem e Realce –  Operações Binárias –  Operações em Regiões de Interesse

54

Page 55: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Operações Básicas)•  Filtros)passaGbaixa:)

–  Média)

–  Mediana)

–  Gaussiano)•  Filtros)passaGalta:)

–  Laplaciano)–  Prewit)–  Sobel)

•  Outras)operações)–  Cálculo)e)apresentação)do)histograma)

–  Equalização)do)histograma)

–  Limiarização)

–  MulPlimiarização)

)

55

Trabalho 1 Trabalho 2

Trabalho 3

Trabalho 4

Trabalho 5 Trabalho 6

Trabalho 7

Trabalho 8

Trabalho 9

Trabalho 10

Entrega: 04/09/14 O que entregar? 1.  Implementação 2.  Breve relatório descritivo da

técnica e dos resultados obtidos.

Page 56: PDI - CHP3

Matlab)

56

Page 57: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Exemplo do Matlab

57

Indexada RGB

Page 58: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Exemplo do Matlab

58

Níveis de Intensidade Binária

Page 59: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Exemplo do Matlab Operações Básicas

•  Entrada/Saída –  imread: abre uma imagem –  imwrite: grava uma imagem

•  Exibição –  Imshow – exibe uma imagem –  imagesc – re-escala e exibe –  colorbar – coloca um eixo de

cores –  Getimage – pega a imagem do

eixo –  Truesize – mostra em tamanho

real •  Ajuda

–  help, lookfor,helpwin, helpdesk, demos.

•  Conversão –  gray2ind –  Im2bw –  im2double –  im2uint8 –  im2uint16 –  ind2gray –  mat2gray –  rgb2gray –  rgb2ind

•  Ferramenta Interessante –  imtool –  conv2

https://www.dropbox.com/sh/n5c3nhqtb9vu0qg/AABrO9NEhC1ZNwRpVSfzDFTua?m=

Link com exemplos básicos

Page 60: PDI - CHP3

OPENCV)

C)))))))C++)))))Java)))))Python)

60

Page 61: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

OPENC)+)Linguagem)C)

•  Link)para)tutorial)de)instalação)hhps://www.dropbox.com/s/mtvi2sgh5m24433/2013_Tutorial%20instalção%20OpenCV%202.42.pdf))

)

•  Link)para)listas)de)aprendizagem)hhps://www.dropbox.com/sh/8e5054ps7smtw44/AABB1DSvvBEQUD7Q9LqLWydaa))

)

•  Link)para)solução)das)listas)– Mandar)email)para)Diego)Moreira)solicitando:)

hhps://db.h/txxEVstd)

61

Page 62: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

OPENC)+)Linguagem)C)

•  Dúvidas,)vocês)devem)falar)com)–  )Diego)Moreira)([email protected]))

–  )Samuel)Luz)([email protected])))

62

Page 63: PDI - CHP3

[email protected] PDI – PPGCC/PPGER - IFCE

Encaminhamentos)

•  Dúvidas?)•  Próximo)assunto)

– Técnicas)de)Processamento)Digital)de)Imagens)

63