Processamento Digital de Imagens - Fundamentos e Aplicações
1. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Processamento Digital de Imagens
Fundamentos e Aplicações
aldisiog@gmail.com, jtunay@gmail.com
Maracanaú, 08 de Novembro de 2013
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
2. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Processamento Digital de Imagens
→
Introdução
→
Fundamentos e anatomia do olho humano
→
Áreas de atuação
→
Exemplo de Processamento e análise
→
Morfologia matemática
→
Filtragem, histograma e limiarização
→
Operações com imagens utilizando Python
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
3. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Introdução
→
Uma imagem pode ser definida como uma função bidimensional, f(x,y), em que x e
y são coordenadas espaciais, e a amplitude de f é chamada de intensidade ou
nível de cinza da imagem em um ponto.
→
Uma imagem digital, é assim chamada quando x, y e os valores de intensidade de
f são quantidades finitas e discretas, ou seja, um número finito de elementos
com suas localizações e valores específicos. Esses elementos são chamados de
pixels da imagem.
→
Processar uma imagem significa modificar ou extrair informações dela;
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
3/25
4. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Introdução
○
Imagem Digital
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
5. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Introdução
○
Convenção utilizada em Processamento de Imagens
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
6. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Introdução
○
Imagem Digital
(0,0)
*f(x,y)
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
7. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Introdução
○
Fases de análise e processamento
Aquisição
Pré-processamento
Segmentação
Extração de Atributos
Reconhecimento e Interpretação
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
8. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Introdução
○
Fases de análise e processamento
Aquisição
Pré-processamento
Segmentação
Extração de Atributos
Reconhecimento e Interpretação
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
9. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Introdução
○
Fases de análise e processamento
Aquisição
Pré-processamento
Segmentação
Extração de Atributos
Reconhecimento e Interpretação
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
10. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Introdução
○
Fases de análise e processamento
Aquisição
Pré-processamento
Segmentação
Extração de Atributos
Reconhecimento e Interpretação
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
11. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Introdução
○
Fases de análise e processamento
Aquisição
Pré-processamento
Segmentação
Extração de Atributos
Reconhecimento e Interpretação
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
12. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Introdução
○
Fases de análise e processamento
Aquisição
Pré-processamento
Segmentação
Extração de Atributos
Reconhecimento e Interpretação
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
13. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Introdução
○
Formação da Imagem
Quando um sensor de imagem registra a radiação que interagiu com objetos
físicos ocorre a formação de uma imagem.
Imagens monocromáticas são descritas como uma função bidimensional da
intensidade da luz f(x,y), onde x e y representam as coordenadas espaciais
(largura e altura) e o valor de f em qualquer ponto corresponde ao brilho
(nível de cinza) da imagem naquele ponto.
A intensidade de luz pode ser modelada como:
• f(x,y) = i(x,y) · r(x,y)
• i = 0 ≤ i(x,y) ≤
∞
(iluminação);
• r = 0 ≤ r(x,y) ≤ 1 (refletância);
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
14. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Introdução
Amostragem e quantização
○
➔
A saida da maioria dos sensores é uma forma de onda de tensão contínua cuja
amplitude e comportamento estão relacionados aos fenômenos físicos
➔
Precisamos converter dados contínuos em dados discretos;
➔
Uma imagem f(x,y) é amostrada resultando em M linhas e N colunas;
Esta imagem têm tamanho: M x N;
Os valores das coordenadas (x,y) são discretos: valores inteiros e
positivos;
Os valores dos níveis de cinza f(x,y) são discretos: valores reais e
positivos.
➔
Amostragem: Digitalização dos valores das coordenadas(posição)
➔
Quantização: Digitalização dos valores de intensidade de luz(brilho)
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
3/25
15. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Introdução
Amostragem e quantização
○
➔
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
3/25
16. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Introdução
○
Espectro visível
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
17. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Introdução
○
Fundamentos e anatomia do olho humano
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
3/25
18. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Introdução
○
Fundamentos e anatomia do olho humano
→
Percepção das cores no olho humano
○
No olho, as imagens são formadas sobre a
retina, numa área sensível à luz localizada no
fundo do olho. Na retina estão localizados
dois tipos de células foto-receptoras: os
bastonetes e os cones;
○
Os bastonetes distinguem a presença e a
ausência de luz ou tons intermediários;
○
Os cones percebem as cores.
○
Basicamente o olho é sensivel a:
■
Vermelho
■
Verde
■
Azul
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
19. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Introdução
○
Formação da Imagem
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
3/25
20. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Introdução
○
Áreas de Atuação
➔
Fotografia e impressão
➔
Imagens de satélite
➔
Medicina
➔
Detecção de face ou de objeto
➔
Biometria
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
21. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Introdução
○
Áreas de Atuação - Biometria
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
22. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Introdução
○
Áreas de Atuação - Imagem da retina e mamografia
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
23. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Introdução
○
Extração de Ruídos
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
24. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Operações
○
Morfologia Matemática
●
Conjunto de técnicas utilizadas para manipular a
estrutura dos objetos
Elemento estruturante
●
Operações básicas (Dilatação e Erosão)
●
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
25. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Operações
○
Morfologia Matemática
➔ Operações básicas
Podemos dividir as operações a serem realizadas em
imagens binárias e operações realizadas em imagens em
tons de cinza e coloridas.
➔ Dilatação Binária (⊕)
Transformação morfológica que combina dois conjuntos
utilizando adição vetorial, o resultado dessa operação
será uma imagem mais “engordada”.
Ela pode ser representada pela união A ⊕ B = A ∪ B.
A dilatação de um conjunto A pelo conjunto B e definida
por:
A ⊕ B = { c | c = a + b , a ∈ A , b ∈ B }
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
26. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Operações
○
Morfologia Matemática
➔ Dilatação Binária (⊕)
A representa a imagem sendo operada e B é um segundo
conjunto onde é chamado elemento estrutural e sua
composição define a natureza especifica da dilatação,
sendo assim a dilatação expande uma imagem.
➔ Erosão Binária (θ)
Basicamente encolhe uma imagem e pode ser vista como uma
transformação morfológica que combina dois conjuntos
usando vetores de subtração. Ela é expressa como a
interseção de A e B. Assim e definido A θ B = B ∩ A.
A erosão da imagem A pelo elemento estrutural B pode ser
definida como:
Aldisio Medeiros = ( x | x + b ∈ A para todo b ∈ B)
A θ B
Tunay Araújo
Novembro, 08 de 2012
3/25
27. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Operações
○
Filtragem, histograma e limiarização
Original
Passo intermadiário
Resultado dilatação
Original
Passo intermadiário
Resultado Erosão
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
28. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Operações
○
Filtragem, histograma e limiarização
➔ Filtragem
Elinação de elementos com uma determinada característica
na imagem. A filtragem é realizada pixel a pixel, onde o
novo nível de cinza de um ponto P qualquer depende do seu
nível de cinza original e do de outros pontos
considerados como vizinhança de P.
Em geral, os pontos mais próximos de P contribuem mais
para o novo valor do nível de cinza do que os pontos mais
afastados
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
29. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Operações
○
Filtragem, histograma e limiarização
➔ Histograma
Distribuiçao de intensidade dos pixels
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
30. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Operações
○
Filtragem, histograma e limiarização
➔ Binarização
Consiste em separar o histograma de uma imagem em duas
regiões.
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
3/25
31. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Operações
○
Filtragem, histograma e limiarização
➔ Limiarização
Uma das abordagens mais importantes de segmentação de imagens, sendo um
caso específico desta.
Consiste em separar as regiões de uma imagem em duas classes: objeto e
fundo.
As demais regiões são classificadas como não interessantes.
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
3/25
32. Instituto Federal do Ceará - IFCE
Instituto Federal do Ceará - IFCE
Campus Maracanaú
Campus Maracanaú
Ciência da Computação
Ciênciada Computação
Filtragem, histograma e limiarização
➔ Limiarização
Na limiarização ou binarização, tem-se, em geral, objetos
pretos(0) sobre o fundo branco(255).
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
3/25
33. Instituto Federal do Ceará - IFCE
Instituto Federal do Ceará - IFCE
Campus Maracanaú
Campus Maracanaú
Ciência da Computação
Ciênciada Computação
Filtragem, histograma e limiarização
➔ Limiarização
A limiarização é baseada na utilização de um histograma. A
limiarização simples é eficiente quando se tem níveis de cinza
bem distintos. Regiões com intensidade uniforme tem picos
elevados no histograma.
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
3/25
34. Instituto Federal do Ceará - IFCE
Instituto Federal do Ceará - IFCE
Campus Maracanaú
Campus Maracanaú
Ciência da Computação
Ciênciada Computação
Filtragem, histograma e limiarização
➔ Limirização
É dita trivial quando os níveis de cinza do objeto e do
fundo apresentarem duas classes distintas na forma de
dois picos.
O objetivo é encontrar um vale entre os dois picos
encontrando um limiar T que separe as duas classes.
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
35. Instituto Federal do Ceará - IFCE
Instituto Federal do Ceará - IFCE
Campus Maracanaú
Campus Maracanaú
Ciência da Computação
Ciênciada Computação
Filtragem, histograma e limiarização
➔
Aldisio Medeiros
Tunay Araújo
Limiarização
Novembro, 08 de 2012
3/25
36. Instituto Federal do Ceará - IFCE
Instituto Federal do Ceará - IFCE
Campus Maracanaú
Campus Maracanaú
Ciência da Computação
Ciênciada Computação
Filtragem, histograma e limiarização
➔ Limiarização
Os métodos de limiarização possuem duas abordagens
distintas, uma global e outra lobal.
Os globais utilizam um único limiar T para toda a imagem.
O local tem como princípio dividir a imagem em sub-regiões,
cada uma com seu limiar específico.
Em função das características de cada imagem, podem ser
necessários diferentes valores de limiar para cada região.
Uma desvantagem do limiar global é a dificuldade de se
encontrar um vale entre dois picos.
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
3/25
37. Instituto Federal do Ceará - IFCE
Instituto Federal do Ceará - IFCE
Campus Maracanaú
Campus Maracanaú
Ciência da Computação
Ciênciada Computação
Filtragem, histograma e limiarização
➔
Limiarização
Único limiar
Aldisio Medeiros
Tunay Araújo
Multiníveis
Novembro, 08 de 2012
3/25
38. Instituto Federal do Ceará - IFCE
Instituto Federal do Ceará - IFCE
Campus Maracanaú
Campus Maracanaú
Ciência da Computação
Ciênciada Computação
Filtragem, histograma e limiarização
➔
Limiarização (Métodos)
Método de Kittler
Método de Pun
Método de Otsu
Método Ótimo
Método de Kapur
Método de Arms
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
3/25
39. Instituto Federal do Ceará - IFCE
Instituto Federal do Ceará - IFCE
Campus Maracanaú
Campus Maracanaú
Ciência da Computação
Ciênciada Computação
tragem, histograma e limiarização
➔ Método de Otsu
INICIO
LEIA Figura;
CRIE Cinza[256];
FAÇA
Cinza[Figura[i]]++;
i ++;
ENQUANTO I < Tamanho(Figura)
Média <- CalcularProbabilidade(Cinza);
FAÇA
SE Figura[i] <= Média ENTÃO
FiguraBinaria[i] <- 0;
SENÃO
FiguraBinaria[i] <- 1;
FIM SE
ENQUANTO I < Tamanho(Figura)
RETORNE FiguraBinaria
FIM INICIO
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
3/25
40. Instituto Federal do Ceará - IFCE
Instituto Federal do Ceará - IFCE
Campus Maracanaú
Campus Maracanaú
Ciência da Computação
Ciênciada Computação
Filtragem, histograma e limiarização
➔ Método de Otsu
Procura um limiar ótimo para a imagem e tem a importante
peculiaridade de se basear inteiramente em cálculos realizados
no histograma de uma imagem.
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
3/25
41. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Introdução
○
Ferramenta utilizada - Linguagem Python
Por que Python?
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
42. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Introdução
○
Ferramenta utilizada - Linguagem Python
➔
➔
➔
Python - Linguagem de programação de alto nível open
source, interpretada, imperativa, orientada a objetos,
funcional de tipagem dinâmica e forte. Foi lançada por
Guido Van Rossun em 1991;
Prioriza a legibilidade do código sobre a velocidade ou
expressividade. Combina uma sintaxe concisa e clara com
os recursos poderosos de sua biblioteca padrão e por
módulos e frameworks desenvolvidos por terceiros.
Possui várias bibliotecas para manipulação de imagens e
é nativa no sistema operacional linux.
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
43. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Operações com imagens utilizando Python
●
●
●
●
Python Image Library (PIL) - é um pacote que contém
várias classes e funções que permite a manipulação
de imagens a partir de um script python.
Mamba - Biblioteca open source escrita em C e python
para operações de morfologia matematica.
Matplotlib - Biblioteca de plotagem 2D para a
linguagem python. Pode gerar gráficos, histogramas,
espectros de potência, gráficos de barras, gráficos de
dispersão, etc, com apenas algumas linhas de código.
SimpleCV - é um framework de código aberto para a
construção de aplicações de visão computacional. Com
ele, você tem acesso a várias bibliotecas de visão por
computador de alta potência, como OpenCV.
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
44. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Operações com imagens utilizando python
➔
Scripts
from PIL import Image
imagem = Image.open("C:UsersusuarioPicturesretina1.jpg")
imagem.show()
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
45. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Operações com imagens utilizando python
➔
Scripts
from PIL import Image
global ext
ext = ".jpg"
def imgCrop(im):
box = (50, 50, 200, 300)
region = im.crop(box)
region.save("CROPPED" + ext)
im1 = Image.open("C:UsersusuarioPicturesretina1.jpg")
imagem = imgCrop(im1)
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012
46. Instituto Federal do Ceará - IFCE
Campus Maracanaú
Ciência da Computação
Considerações finais
➔
Referências
1. GONZALEZ, Rafael; Woods, Richard. Processamento Digital de
Imagens.. 3. ed. Longman do Brasil, 2010. 624p.
2. http://www.mamba-image.org/
3. http://www.inf.ufsc.br/~visao/morfologia.pdf
Aldisio Medeiros
Tunay Araújo
Novembro, 08 de 2012