processamento de imagens - uspjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso...
TRANSCRIPT
![Page 1: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/1.jpg)
Processamento de ImagensSCC 251
Pré-processamento
Material baseado no livro do Sonka e Gonzalezhttp://www.icaen.uiowa.edu/~dip/LECTURE/lecture.html
![Page 2: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/2.jpg)
![Page 3: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/3.jpg)
Propriedades de uma Imagem
digital
• Vizinhança
• Conectividade
• Medição de Distância
• Operações Lógicas e Aritméticas
![Page 4: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/4.jpg)
Vizinhança
• N4(p) : pixel p (x,y) com 4 vizinhos
– (x+1,y), (x-1,y), (x,y+1) e (x,y-1)
– 4-vizinhança
• N8(p) : pixel p (x,y) com 8 vizinhos
– Os acima +
– (x+1,y+1), (x-1,y-1), (x-1,y+1) e (x+1,y-1)
– 8-vizinhança
• Vizinhança diagonal
![Page 5: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/5.jpg)
Conectividade
• Importante para estabelecer limites de
regiões e objetos em uma imagem
– 4-conectividade: pixels p e q são 4-conectados
se q N4(p)
– 8-conectividade: pixels p e q são 8-conectados
se q N8(p)
![Page 6: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/6.jpg)
Distâncias
• Dados pixels p (x,y); q (s,t) e z (u,v)
• Distância D
– D(p,q) 0 (D(p,q) = 0, se somente se p=q)
– D(p,q) = D(q,p)
– D(p,z) D(p,q)+D(q,z)
![Page 7: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/7.jpg)
Distâncias
• Euclidiana:
• Distância D4 (city-block):
• Distância D8 (tab. xadrez):
22)()(),( tysxqpD
e
|||| tysx
|)||,max(| tysx
![Page 8: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/8.jpg)
Operações Aritméticas e Lógicas
• Soma, subtração, multiplicação, divisão
• AND, OR, XOR.
![Page 9: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/9.jpg)
Pré-processamento
• Não aumenta o conteúdo de informação em
uma imagem
• Às vezes, diminui o conteúdo
• O melhor pré-processamento é o não pré-
processamento
– concentrar-se no processo de aquisição de
imagens.
• É, mesmo assim, útil por eliminar
informações redundantes.
![Page 10: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/10.jpg)
Pré-processamento
• Melhorar a qualidade da imagem (dados)
suprimindo distorções indesejadas e ou
realçando certas características importantes
para o processamento posterior.{note que transformações geométricas (rotação, escala,
translação, etc) são classificadas como pré-processamento}
• 4 categorias tamanho da vizinhança
considerada no cálculo do novo nível cinza
![Page 11: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/11.jpg)
4 Categorias
• Transformações de brilho (histograma, etc.)
• transformações geométricas (distorções)
• Métodos que usam vizinhança local
(suavização, filtros)
• restauração (requer conhecimento sobre a
imagem investigada)
![Page 12: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/12.jpg)
Transformadas de brilho do pixel
• Depende exclusivamente da propriedade do
próprio pixel.
• Há duas classes de transformadas:
– Correção de brilho (brightness correction)
– transformada de nível de cinza (grey-scale transformation)
![Page 13: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/13.jpg)
Transformadas
• Correção de brilho (position-dependent)
– modifica o brilho do pixel levando em conta o
seu brilho original e sua posição na imagem
• Transformada de nível de cinza
– modifica o brilho sem considerar sua posição
na imagem (equalização do histograma, por exemplo)
![Page 14: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/14.jpg)
Correção de Brilho
• Na prática, dispositivos de aquisição e
digitalização atenuam mais a luz quanto
mais longe esta está do eixo óptico
• a foto-sensitividade do sensor não é
uniforme. (câmeras CCD, por exemplo)
• Iluminação desigual dos objetos também é
fonte de degradação
![Page 15: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/15.jpg)
Correção da degradação(quando sistemática e estável)
f(i,j) = e(i,j) • g(i,j)f (i,j): imagem com degradação
e(i,j): coeficiente de erro
g(i,j): imagem original, não degradada (desejada)
e(i,j) obtido ao capturar-se g(i,j) com brilho conhecido.
(imagem com brilho constante c)
f c(i,j): resultado degradado.
![Page 16: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/16.jpg)
Transformadas do nível de cinza
T: Transformação
p: pixel original (brilho original)
q: novo valor
Piecewise
Linear
Function:
Realce de
contraste na
faixa (p1,p2)
Thresholding
(limiarização)
Transformada
negativa
![Page 17: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/17.jpg)
Histogramas em Imagens Digitais
• Definição:
– O histograma de uma imagem é uma função
que apresenta a distribuição dos pixels em nos
níveis de cinza.
– Indica o nível de constraste e o brilho médio.
• I(x,y)=p
• H(p)= N. de pixels (I(x,y)=p)
pr(rk) = nk /n onde
• 0 rk 1
• k = 0,1,..., L-1, onde L é o nro de níveis de cinza da
imagem
• n = nro total de pixels na imagem
• pr(rk) = probabilidade do k-ésimo nível de cinza
• nk = nro de pixels cujo nível de cinza corresponde a k
![Page 18: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/18.jpg)
Histograma em imagens digitais
![Page 19: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/19.jpg)
Propriedades de Histogramas
• O histograma não preserva a informação espacial da distribuição dos pixels,
pois este contém apenas a quantidade de pixels com um determinado nível de
cinza mas não a sua posição na imagem.
• Área do histograma = área da imagem
• Imagens distintas podem apresentar histogramas idênticos
• Os histogramas podem ser utilizados para fins de reconhecimento de padrões.
![Page 20: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/20.jpg)
Técnicas de processamento com
Histogramas
• Ajuste de brilho e contraste
• Equalização / Refinamento Imagem
• Segmentação
• Mapas de pseudocores
![Page 21: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/21.jpg)
Ajustes de brilho
• Brilho– Pode ser realizado através da soma/subtração pontual
na intensidade dos pixels
![Page 22: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/22.jpg)
Histograma
![Page 23: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/23.jpg)
Algumas transformações
contraste lineares
![Page 24: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/24.jpg)
Outras transformações lineares
![Page 25: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/25.jpg)
Ajustes contraste não lineares
• Escala logarítmica de contrastes = c log(1+p) [Gonzalez & Woods, 1993]
• Consiste em aplicar uma escala logarítmica
e normalizar o resultado para o histograma
256.
• Esta técnica demonstra bons resultados para
aumentar o contraste de imagens
• Ferramentas de proc. permitem que o
usuário „desenhe‟ a função logarítmica
![Page 26: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/26.jpg)
Exemplos escala log
![Page 27: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/27.jpg)
Ajustes de brilho e contraste
• Escala expoenencial de contraste– s = c exp(1+p)
• Similar a técnica logarítmica no entanto é
empregada em imagens com muito brilho.
![Page 28: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/28.jpg)
Exemplos escala exponencial
![Page 29: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/29.jpg)
Expansão de histograma
![Page 30: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/30.jpg)
Compressão de histograma
![Page 31: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/31.jpg)
Equalização de Histograma
• Criar uma imagem com níveis de cinza
igualmente distribuídos ao longo da escala de
cinza.
• Muitas vezes melhora a qualidade visual da
imagem.
• Utiliza função auxiliar (ou de transformação)
– cdf: função de distribuição acumulada, por
exemplo
![Page 32: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/32.jpg)
Equalização
H(p): Histograma de entrada
G(p): Histograma desejado após a equalização
![Page 33: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/33.jpg)
Equalização
• Histograma acumulado
• Função de distribuição acumulada (cumulative
distribution function)
Sk = T(rk) = nj/n = pr(rj) (0jk)
![Page 34: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/34.jpg)
Histograma
Fazendo-se somas sucessivas com a função cdf, teremos:
S0 = 0.068, S1=0.264, S2=0.560, ... S6=0,972, S7=1,000
![Page 35: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/35.jpg)
Equalização
• Imagem quantizada com 8 níveis de cinza
– cada valor sj deverá ser arredondado para o
valor válido mais próximo.
• s0 0, s1 2/7, s2 4/7, s3 5/7
• s4 6/7, s5 1, s6 1, s7 1
![Page 36: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/36.jpg)
Após equalização
![Page 37: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/37.jpg)
a) Imagem Original
b) Histograma
![Page 38: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/38.jpg)
a) Histograma acumulada da imagem original
b) Imagem equalizada
![Page 39: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/39.jpg)
a) Histograma da imagem equalizada (devido a discretização não
gera valores constantes
b) aproximação a uma reta.
![Page 40: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/40.jpg)
Mais exemplos
![Page 41: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/41.jpg)
Exemplos
![Page 42: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/42.jpg)
Transformadas Geométricas
• Computação gráfica e análise de imagens
• eliminar distorções geométricas durante o
processo de captura
• Possível aplicação
– comparar duas imagens tiradas com intervalo
de 1 ano, por exemplo
– Solução: subtrair uma da outra
– Para isso, aplicar transformação geométrica
![Page 43: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/43.jpg)
Função vetorial T que mapea o pixel (x,y) para uma nova posição (x´,y´)
x´ = Tx(x,y) y´ = Ty(x,y)
Distorções geométricas na captura Imagem de saída: transposição de
coordenadas e intensidade
![Page 44: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/44.jpg)
Transf. Geométrica (duas etapas)
• Transf. da coordenada do pixel
– Aproximação por eq. polinomiais
– bilinear, afim, etc..
• Interpolação do nível de cinza
– output deve ser mapeado p/ o grid digital
– Qual será a intensidade desse novo pixel?
• implica provavelmente em computar a interpolação
do brilho de pontos na sua vizinhança.
• Limiar entre operações de pontos
(histograma) e locais (filtros espaciais)
![Page 45: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/45.jpg)
Transf. Importantes
Rotação por um ângulo
Mudança de Escala
Skewing por um ângulo
![Page 46: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/46.jpg)
Interpolação nível de cinza
• Quando o resultado da transformada for um
valor real, será preciso interpolar
• Método mais simples: nearest neighbour
– atribui-se ao pixel o valor do pixel mais
próximo na imagem transformada.
– Apresenta erro de posição de, no máximo,
metade do pixel que pode ser perceptível em
objetos com bordas “retas”.
Kernel de
interpolação
(1D)f1(x,y) = gs [round(x), round(y)]
![Page 47: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/47.jpg)
Interpolação linear
• Explora os 4 pontos da vizinhança de (x,y).
• A função de intensidade é linear nessa
vizinhança.
![Page 48: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/48.jpg)
Pré-processamento Local
• Utiliza uma vizinhança de poucos pixels
para produzir novas intensidades de pixel
• Duas categorias:
– suavização (smoothing): suprimir ruído ou
pequenas flutuações nas imagens (supressão de
altas freqüências)
– operadores de gradiente: derivadas locais da
funções de imagem. Por quê? Derivadas são
maiores em regiões de rápidas mudanças
(supressão de baixas freqüências).
• Qual domínio ? Espacial ou da Freqüência
![Page 49: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/49.jpg)
Filtros Digitais no domínio do
espaço
• Definição:– Também conhecidos como operadores locais os filtros
locais são técnicas baseadas na convolução de templates (janelas, matrizes) ou tuplas (conjunto de pixels).
- Uma grande variedade de filtros digitais podem ser implementados através da convolução no domínio do espaço.
![Page 50: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/50.jpg)
Templates x tuplas0,0
0,n
m,0 m,n
j
i
0,00,n
m,0 m,n
j
i
0,00,n
m,0 m,n
j
i
0,00,n
m,0 m,n
j
i
![Page 51: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/51.jpg)
Convolução de gabaritos (templates)
• Se T(x,y) é um gabarito (mxn) e I(x,y) é a
Imagem (MxN)
• A convolução de TI é dada por:
• Ou ainda ....
![Page 52: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/52.jpg)
Alguns conceitos importantes
Convolução discreta
h(x): resposta de impulso (impulse response), kernel, máscara, filtro
ou template.
![Page 53: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/53.jpg)
Exemplos de convolução
![Page 54: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/54.jpg)
Tratamento das extremidades da Imagem
• Convolução aperiódica
– Não são considerados os pontos da imagem onde o gabarito não se
encaixa na imagem
• Convolução Periódica
– O gabarito é deslocado sobre as extremidades da Imagens como se
estas fosses adjacentes
• Gabarito Truncado
– Quando o gabarito não se encaixa na imagem o gabarito é truncado
![Page 55: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/55.jpg)
Convolução x Custo Computacional
• O custo computacional da convolução é alto:
– Em uma imagem M x M e um template NxN são
realizadas M2 x N2.
– Se a imagem é de 512x512 e o gabarito é de 16x16, são
necessárias 67108864 multiplicações.
– Computação paralela
![Page 56: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/56.jpg)
Filtros Digitais – gabarito
• Passa Baixa e média espacial
• Filtragem mediana
• Passa Alta
• Passa banda
• Gradientes (roberts,sobel,etc)
Suavização
Detectores de
Bordas
![Page 57: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/57.jpg)
Filtro Passa-Baixas
• suavização ("Smoothing") da imagem
• Redução do efeito de ruído e detalhes irrelevantes
• Maior a máscara, maior efeito de borramento
![Page 58: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/58.jpg)
Filtro Passa-Baixa
• Filtro Gaussiano– “semelhante” ao filtro da média. A máscara representa o formato
de uma Gaussiana.
– Curiosidade: como gerar uma máscara de convolução espacial Gaussiana? http://www.lcad.icmc.usp.br:/~jbatista/procimg/gaussian.c
![Page 59: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/59.jpg)
Filtro Passa-Baixas
![Page 60: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/60.jpg)
Filtro Média : Exemplo
![Page 61: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/61.jpg)
Filtro de Mediana
• Os filtros de mediana permitem, tal como os filtros de
média, reduzir o ruído das imagens sem, no entanto,
esbater as arestas e os contornos das mesmas.
• O valor mediano num conjunto é aquele para o qual
existem metade dos valores menores que ele e metade
maiores que ele.
• Este tipo de filtros é particularmente adaptado à remoção
de ruído impulsivo que aparece em regiões limitadas da
imagem.
![Page 62: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/62.jpg)
Filtro de Mediana: Exemplo
![Page 63: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/63.jpg)
Comparação Mediana/Média
![Page 64: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/64.jpg)
Comparação Mediana/Média
ruído
Média 3x3
Mediana 3x3
![Page 65: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/65.jpg)
Observações
• Edges (aresta/borda): pixels nos quais há
uma mudança brusca na intensidade.
• Boundary (contorno): linha fechada
formada pelas bordas de um objeto.
![Page 66: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/66.jpg)
O que causa mudanças na
intensidade?
• Eventos Geométricos
– Descontinuidades no
contorno ou orientação da
superfície e/ou cor da
superfície e textura
• Eventos não geométricos
– Mudança de iluminação
– Luz especular
– Sombras
![Page 67: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/67.jpg)
Descritores de Borda
• normal: vetor unitário na direção da mudança máxima de
intensidade.
• Direção: vetor unitário perpendicular à normal
• Posição: posição na imagem em que a borda está localizada.
• “Strength”: relacionado com o contraste local ao longo da
normal
![Page 68: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/68.jpg)
Tipos de bordas
• Degrau (step)
• Rampa (ramp)
• Platô (ridge)
• Telhado (roof)
![Page 69: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/69.jpg)
Borda degrau (step edge)
• A intensidade muda abruptamente de um
valor (de um lado) para um outro valor
(para o lado oposto da descontinuidade)
![Page 70: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/70.jpg)
Borda em rampa (ramp edge)
• Um degrau em que a mudança de
intensidade não é instantânea, mas ocorre
em uma distância finita.
![Page 71: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/71.jpg)
Ridge edge
• Mudaça abrupta de intensidade, voltando ao
ponto de partida após curta distância
(geralmente causada por linhas)
![Page 72: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/72.jpg)
Borda Telhado (roof edge)
• Um ridge edge onde a mudança de intensidade não
é instantânea, ocorrendo numa distânicia finita
(geralmente causada pela intersecção de duas
superfícies)
![Page 73: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/73.jpg)
Filtro Detectores de bordas
• Realça detalhes, produzindo uma "agudização"
("sharpering") da imagem, isto é, as transições
entre regiões diferentes tornam-se mais nítidas.
Estes filtros podem ser usados para realçar certas
características presentes na imagem, tais como
bordas, linhas curvas ou manchas, mas enfatizam
o ruído existente na imagem.
![Page 74: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/74.jpg)
Principais etapas na detecção de
bordas
• Suavização: eliminar ruídos desnecessários
• Agudização (Enhancement): aplicar filtro para
realçar a qualidade das bordas na imagem
• Detecção: determinar que bordas devem ser
descartadas como ruído e quals manter
– Limiarização na “strength” da borda !
• Localização: determinar locar exato da bordas
![Page 75: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/75.jpg)
Tratamento matemático de arestas
• Derivadas: representam mudanças em
funções contínuas, assim operadores que
descrevem arestas podem ser expressos em
derivadas parciais.
• Mudanças na função imagem podem ser
representadas pelo Gradiente
• Uma aresta é uma variável vetorial, com
magnitude e direção
![Page 76: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/76.jpg)
Detectores de Borda
• Os detectores de bordas são baseados em
diferenciação, podendo ser de primeira
ordem ou de segunda ordem
• gradiente ->borda -> módulo do vetor
• laplaciano ->borda-> cruzamento por zero
![Page 77: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/77.jpg)
Detecção de bordas por derivadas
• Pontos que se localizam nas bordas
podem ser localizados:
(1) detectando-se a local maxima ou
minima da primeira derivada.
(2) detectando-se o zero-crossings
da segunda derivada.
![Page 78: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/78.jpg)
Detecção de borda usando 1a
Derivada – 1D
Borda rampa
Borda telhado
Borda degrau para cima
Borda degrau para baixo
(centrada em x)
![Page 79: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/79.jpg)
Detecçãode borda usando 2a
Derivada – 1D
Substituindo x+1 por x (ou seja, centrando em x):
![Page 80: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/80.jpg)
Detecçãode borda usando 2a Derivada – 1D
![Page 81: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/81.jpg)
Detecçãode borda usando 2a Derivada – 1D
Borda degrau para cima
Borda degrau para baixo
Borda em rampa
Borda telhado
![Page 82: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/82.jpg)
Considerações sobre bordas e derivadas
• Primeira ordem
– Produzem bordas mais espessas
– A magnitude da resposta é menor, pois é menos
agressiva na hora de facilitar as mudancas bruscas
• Segunda ordem
– Realçam mais os detalhes (incluindo ruídos!)
– Nas rampas ou degraus, apresenta sinais opostos (efeito
borda dupla)
– Sinal pode ser usado para determinar se uma borda é
uma transição de claro p/ escuro (derivada negativa) ou
escuro/claro (der. positiva)
![Page 83: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/83.jpg)
O Gradiente
• Em PI as derivadas de primeira ordem são
implementadas utilizando-se a magnitude do
gradiente.
• A direção do gradiente é perpendicular a aresta e
dá sempre a direção de crescimento da função:
menor p/ maior intensidade !
![Page 84: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/84.jpg)
Detecção de Borda com 1a Derivada – 2D
Gradiente
• O Gradiente é definido como:
• Aproximação do gradiente por diferenças
finitas:
![Page 85: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/85.jpg)
• Na notação de coordenada de pixel, j
corresponde a direção x e i a direção
negativa y.
Detecção de Borda com 1a Derivada – 2D
Gradiente
![Page 86: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/86.jpg)
Observações sobre Gradiente
• Como os componentes do vetor gradiente
são derivadas, estes são operadores lineares
• A magnitude, no entanto, não é linear
(potência e raiz quadrada)
• As derivadas parciais são anisotrópicas, ou
seja, não são invariantes a rotações. Mas a
magnitude é invariante à rotação
(isotrópica)
![Page 87: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/87.jpg)
Operadores de primeira ordem
• Roberts
• Sobel
• Prewitt
• Kirsh
![Page 88: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/88.jpg)
Operador baseado na 1a Derivada – 2D
Roberts
Mx e My são aproximações em i+ ½ e j + ½
![Page 89: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/89.jpg)
Operadores de Roberts
![Page 90: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/90.jpg)
Operadores de Roberts
![Page 91: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/91.jpg)
Operador baseado na 1a Derivada – 2D
Outra aproximação
• Considere o arranjo de pixeis ao redor de (i, j):
• As derivadas parciais podem ser computadas como:
• A constante c implica que a ênfase foi dada ao pixel mais próximo ao centro da máscara.
![Page 92: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/92.jpg)
Operador baseado na 1a Derivada – 2D
Prewitt
• Setando c = 1, temos o operadorPrewitt !
Mx e My são aproximações em (i ,j)
![Page 93: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/93.jpg)
Operador baseado na 1a Derivada – 2D
Sobel
• Fazendo c = 2, temos Sobel:
Mx e My são aproximações em (i ,j)
![Page 94: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/94.jpg)
Sobel
![Page 95: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/95.jpg)
Gradiente SobelSx Sy
Bordas = thresholding
![Page 96: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/96.jpg)
Operadores de Sobel
![Page 97: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/97.jpg)
Operadores de Sobel
![Page 98: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/98.jpg)
Operadores de Sobel
![Page 99: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/99.jpg)
Comparação Roberts
SobelOriginal
![Page 100: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/100.jpg)
Questões práticas sobre filtros
• Balanço entre supressão-localização de
ruído.
– Filtros maiores reduzem ruído, mas pioram a
localização (adicionam incertezas sobre a
localização das arestas) e vice versa.
Filtro maiorFiltro menor
![Page 101: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/101.jpg)
Questões práticas sobre filtros
• Como escolher o limiar ?
Magnitude do gradient e
Baixo threshold Alto threshold
![Page 102: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/102.jpg)
Questões práticas sobre filtros
• Afinamento e “linking” normalmente são
operações necessárias !
![Page 103: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/103.jpg)
Detectores de borda com 2a Derivada – 2D
Laplaciano
máskara:
![Page 104: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/104.jpg)
Detectores de borda com 2a Derivada – 2D
Exemplo Laplaciano
detect zero-crossings
![Page 105: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/105.jpg)
Detectores de borda com 2a Derivada – 2D
Propriedades Laplaciano
• É um operador isotrópico (não diferencia
direções).
• Fácil de implementar (basta uma máscara)
• Não dá informação sobre a direção da borda
• Mais sensível ao ruído (i.e., deriva duas
vezes!).
![Page 106: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/106.jpg)
Detectores de borda com 2a Derivada – 2D
Laplaciano do Gaussiano (LoG)
• Para reduzir o efeito do ruído, a imagem é primeiramente
suavizada com um filtro passa-baixa.
• No caso do LoG, este filtro é uma Gaussiana
• Pode ser mostrado que:
σ controla a suavização
![Page 107: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/107.jpg)
LoG• Aplicado o filtro LoG, deve-se encontrar o cruzamento por
zero
– Vizinhança 3x3 centrado em p. Um crzamento por zero em p é
quando os sinais de pelo menos dois de seus pixeis vizinhos opostos
são diferentes ! (esquerda/direita; cima/baixo e duas diagonais)
– Pode ainda se considerar um limiar entre a diferenca absoluta dos
vizinhos
• Quanto ao filtro Gaussiano:
– 99,7% do volume sob uma superfície de uma gaussiana 2D situa-se
entre +- 3σ ao redor da média.
– O tamanho do filtro discreto LoG n x n deve ser tal que n seja o
menor inteiro ímpar >= 6 σ
![Page 108: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/108.jpg)
Detectores de borda com 2a Derivada – 2D
Exemplo Laplaciano of Gaussiano (LoG)
convolution result zero-crossings
![Page 109: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/109.jpg)
Detector de borda Canny
• “Taxonomicamente” este operador deveria
estar junto aos operadores de primeira
derivada, mas devido a sua “boniteza” foi
deixado para o final
– Marr Hildreth (1980)
– Canny (1986)
1. Baixa taxa de erro : encontrar todas as bordas
2. Boa localização: bordas detectas o mais próximo
das bordas reais
3. Resposta única: um único ponto de borda
retornado (nro de máximos locais deve ser
mínimo)
![Page 110: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/110.jpg)
Detector de borda Canny
• Atacando os critérios taxa de erro e localização
– Canny mostrou que uma boa aproximação para um
detector ótimo de bordas de degrau é a primeira
derivada de uma Gaussiana.
• A análise é baseada em bordas de degrau (step-edges)
corrompidas por ruído branco Gaussiano
• (ruído branco : ruído com espectro de freqüência contínuo e
uniforme sobre uma banda específica)
• (ruído branco Gaussiano: ruído branco em que a distribuição
dos valores de amplitude é Gaussiano)
• Critério única resposta
– Aproximação numérica
![Page 111: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/111.jpg)
Canny - Etapas
1. Suavizar uma imagem f por uma
Gaussiana
– Fs (x,y) = f(x,y) * G(x,y)
2. Para cada pixel, computar a magnitude
M(x,y) e a direção do gradiente α (x,y)
– Usar qq filtro de primeira derivada visto antes
– M(x,y) fatalmente conterá cristas largas em
torno dos máximos locais. Para afinar estas
cristas utilize algoritmo de supressão dos não
máximos, afinando M(x,y)
3. Limiarizar M(x,y) e analisar conectividade.
![Page 112: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/112.jpg)
Canny
Non-maxima suppression
Supressão dos não máximos
(i,j)
![Page 113: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/113.jpg)
Canny
Limiarização por Histerese /Edge Linking
• Usar dois limiares:
– Um limiar baixotl
– Um limiar altoth (normalmente, th = 2tl)
![Page 114: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/114.jpg)
Exemplo – qual o efeito de σ?
![Page 115: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/115.jpg)
Exemplo – qual o efeito de σ?
![Page 116: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/116.jpg)
Processamento multi-escala
(scale space)
• Um problema prático com qq detector de
borda é a questão da escolha da escala de
suavização (o valor de σ usado na
Gaussiana).
• Em muitas aplicações é desejável processar
images em várias escalas
• Determinamos quais bordas são mais
significativas em termos de faixa de escalas
sobre as quais elas serão evidentes.
![Page 117: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/117.jpg)
Processamento multi-escala
![Page 118: Processamento de Imagens - USPjbatista/scc251/mat/pre_proc.pdf · valor real, será preciso interpolar •Método mais simples: nearest neighbour –atribui-se ao pixel o valor do](https://reader033.vdocuments.pub/reader033/viewer/2022060419/5f1657fbe7084a30803333c8/html5/thumbnails/118.jpg)
Processamento multi-escala