Upload
geilson
View
239
Download
2
Embed Size (px)
Citation preview
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 – 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
Operações)
Pixel)a)Pixel)
3
[email protected] PDI – PPGCC/PPGER - IFCE
Operações)Pixel)a)Pixel)
4
Varredura na imagem Jargão que significa percorrer a imagem toda…
[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.
Operações)
Vizinhança)
11
[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α α α∞
−∞
= −∫
[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
[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
[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∞
=−∞
= −∑
[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
[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
[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
[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
[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
[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
[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
Filtro)da)média)
Exemplo)de)convolução)2D)
23
[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
[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
[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
[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
[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
[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
[email protected] PDI – PPGCC/PPGER - IFCE 30
Operações de Vizinhança Filtro da Média
Operações)
Vizinhança)
32
[email protected] PDI – PPGCC/PPGER - IFCE
Operações de vizinhança
33
! Vizinhança 3x3: ! Vizinhança 5x5: ! Vizinhança 7x7:
[email protected] PDI – PPGCC/PPGER - IFCE
Operações de vizinhança
34
! 8 - Conectado: ! 4 - Conectado:
[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
[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
[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
[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
[email protected] PDI – PPGCC/PPGER - IFCE 41
Exemplo)do)Operador)Sobel)
[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)
Limiarização)
Local)e)Global)
46
[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).)
)
[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))
)
[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.))
[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.
[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).
[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)
Como)processar)uma)imagem?)
Onde)processar)uma)imagem?)
53
[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
[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.
Matlab)
56
[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
OPENCV)
C)))))))C++)))))Java)))))Python)
60
[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
[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
[email protected] PDI – PPGCC/PPGER - IFCE
Encaminhamentos)
• Dúvidas?)• Próximo)assunto)
– Técnicas)de)Processamento)Digital)de)Imagens)
63