Title: Processamento de Imagem
1Processamento de Imagem
- Mestrado ISEP/IST emEng. Electrotécnica e
Computadores - António Costa (acc_at_dei.isep.ipp.pt)
2Índice
- Introdução
- Definições
- Ferramentas
- Amostragem
- Algoritmos
- Técnicas
- Conclusão
- Informação Adicional
3Introdução
- Processamento Digital de Imagem
- Desde circuitos simples até sistemas
computacionais - Enquadramento do Processamento de Imagem
- Domínio de aplicação 2D (mais comum)
4Definições
- Imagem
- É uma função escalar a(x,y) intensidade de
qualquer coisa traduzida num valor inteiro, real
ou complexo - Uma imagem digital am,n resulta de imagem
analógica a(x,y) através de amostragem -
digitalização - Uma imagem é formada por N linhas e M colunas,
sendo cada elemento de imagem am,n um pixel - Na realidade a função a() é a(x,y,z,t,?,...), mas
será abordado apenas o caso 2D, estático e
monocromático
5Definições
- Exemplo
- Imagem de 16 linhas e 16 colunas
- Pixel em a10,3 tem valor inteiro 110 (gama
0-255)
6Definições
- Valores mais comuns
- Nº de linhas N 256, 512, 525, 625, 768, 1024,
1035 - Nº de colunas M 256, 512, 768, 1024, 1320
- Nº de intensidades 2, 64, 256, 1024, 65536, 224,
232 - Casos mais comuns MN2K (K8,9 ou 10)devido a
tecnologias de hardware ou algoritmos (FFT) - O número máximo de intensidades é geralmente
potência de 2 - Caso 2 imagem binária (preto e branco)
- Caso gt2 imagem em tons de cinzento
7Definições
- Tipos de operações sobre imagens
- Transformação de imagem am,n em imagem bm,n
- Pontual o resultado num pixel apenas depende do
valor do pixel de entrada correspondente - Local o resultado num pixel depende dos valores
da vizinhança de pixels de entrada próximos - Global o resultado num pixel depende de todos os
valores dos pixels de entrada - Exemplos
8Definições
- Tipos de vizinhança de pixels
- O conceito de vizinhança de pixels é muito
importante - No caso mais comum de amostragem rectangular as
vizinhanças mais usadas são a viz4 e a viz8 - Em alguns dispositivos é possível efectuar
amostragem hexagonal, de que resulta a vizinhança
viz6 - Exemplos
9Ferramentas
- Convolução
- Obedece ao princípio da sobreposição
- Permite descrever a saída de um sistema linear,
conhecidas a entrada e a função de transferência - Versão discreta cm,n am,n ? bm,n
?j ?k aj,k ? bm-j,n-k - Correlação
- Mede o grau de similaridade entre dois sinais
- Versão discreta cm,n am,n ? bm,n
?j ?k aj,k ? bmj,nk
10Ferramentas
- Transformada de Fourier
- Versão discreta (DFT) A(?,?) ?m ?n am,n
? e-j(?m ?n) am,n 1/4?2 ? ???? A(?,?) ?
ej(?m ?n) d? d? - A transformada de uma imagem pode ser complexa
- Exemplo
11Ferramentas
- Estatísticas
- É comum o uso de descrições estatísticas simples
- A função densidade de probabilidade p(a) de uma
região de pixels pode ser estimada por contagem
das ocorrências de intensidade nessa região - Essa contagem pode ser descrita pelo histograma
ha
12Ferramentas
- Estatísticas
- Média ma 1/P ? ?j,k aj,k (P -
nº de pixels da região) - Desvio padrão sa ? 1/(P-1) ? ?j,k(aj,k - ma)2
- Relação sinal/ruído SNR 20log10((amax - amin) /
sn)
(sn - desvio
padrão do ruído) - Exemplo
13Ferramentas
- Representações de contorno
- Chain codes
- Seguimento do contorno em sentido horário com
anotação das mudanças de direcção entre pixels
sucessivos - exemplo - Crack codes
- Seguimento da linha entreobjecto e fundo (crack)
14Ferramentas
- Uma nota de aviso
- Não é possível ainda modelar o sistema visual
humano através das técnicas correntes de análise
de sistemas - As ilusões ópticas não se enquadram nesses modelos
URL http//www.city.ac.uk/optics/BVTutor/html/ocu
lar_movements_i.html
15Amostragem
- Amostragem de imagem
- Ideal bidealm,n ?m ?n a(mX0,nY0) ?
?(x-mX0,y-nY0) - Real brealm,n (a(x,y) ? p(x,y)) ? ?m ?n
?(x-mX0,y-nY0) - A função de abertura p(x,y) depende da tecnologia
usada na captura da informação e é
frequentemente - Circular Quadrada Gaussiana
- Deve escolher-se a densidade de amostragem com
base na teoria de sinal clássica (teoria de
Nyquist)
16AlgoritmosBaseados em operações de histograma
- Alargamento do contraste
- Muitas imagens são geradas com intensidades que
não aproveitam a gama máxima de intensidades - Corrige-se através do alargamento da gama da
imagem bm,n (2B-1) ? (am,n - plow) /
(phigh - plow) se plow lt
am,n lt phigh senão 0 ou 2B-1 - plow - intensidade baixa no histograma (0, 1,
5) - phigh - intensidade alta no histograma (100,
99, 95)
contrastealargado
original
17AlgoritmosBaseados em operações de histograma
- Equalização de histogramas
- Normaliza-se o histograma da imagem para um
histograma padrão (comparação de imagens, etc) - O objectivo ideal é obter ocorrências iguais para
todas as intensidades - histograma plano - Pode obter-se algo aproximado usando a função
distribuição de probabilidade (normalizada de 0 a
2B-1) como índice de acesso ao histograma
padrão...
histogramaequalizado
original
18AlgoritmosBaseados em operações matemáticas
- Operações binárias
- Baseadas nas operações booleanas pixel a pixel
- Exemplo
- Operações aritméticas
- ab a/b log(a) exp(a) sqrt(a) sin(a) (2B-1)-a, etc
19AlgoritmosBaseados em convolução
- Enquadramento
- Baseia-se na noção de uma janela finita h()
operando sobre a imagem a(), produzindo uma nova
imagem c() - O pixel de saída é igual à soma pesada dos pixels
de entrada dentro da janela, em que os pesos são
os valores específicos do filtro de convolução
h() - Convolução no domínio espacial
- Pode gerar acessos fora da imagem am,n
cm,n am,n ? hm,n ?j ?k hj,k ?
am-j,n-k Note-se que m-j ou n-k podem ser
negativos Solução extender artificialmente a
imagem
20AlgoritmosBaseados em suavização
- Objectivos gerais
- Tipicamente usados para reduzir o ruído e/ou
preparar imagens para outros processamentos mais
complexos - Filtros lineares
- Filtro uniforme
- Filtro triangular
- Filtro gaussiano cada vez mais utilizado
(versatilidade)
Rectangular (JK5)
Circular (JK5)
Piramidal (JK5)
Cónico (JK5)
21AlgoritmosBaseados em suavização
- Filtros não-lineares
- Estes filtros não podem ser alvo de análises de
Fourier - Filtro de mediana em cada aplicação da janela
h()usa-se a intensidade mediana dentro da
referida janela - Filtro Kuwahara preserva bem os contornos
- Em cada uma das 4 regiões calcula-se a média e a
variância - O valor atribuído ao pixel centralé o valor
médio da região quepossui menor variância
22AlgoritmosBaseados em suavização
- Exemplos de vários filtros de suavização
23AlgoritmosBaseados em derivação
- Enquadramento
- Os algoritmos apresentados são uma aproximação
- Tendem a aumentar o ruído de alta frequência,
pelo que geralmente são combinados com filtros de
suavização - Primeira derivada
- Filtros de gradiente ?am,n (hx ? am,n)ix
(hy ? am,n)iy - Básicos
- Prewitt
24AlgoritmosBaseados em derivação
- Primeira derivada
- Filtros de gradiente (continuação) ?am,n
(hx ? am,n)ix (hy ? am,n)iy - Sobel
- Construídos à medida
- Gaussianos
25AlgoritmosBaseados em derivação
- Primeira derivada
- Exemplos de filtros de gradiente
26AlgoritmosBaseados em derivação
- Segunda derivada
- Desempenham um papel muito importante
- Filtros de Laplaciano ?2am,n (h2x ?
am,n)ix (h2y ? am,n)iy - Básicos
- Gaussiano
- Construídos à medida
- SDGD
(2ª derivada na direcção do gradiente)
27AlgoritmosBaseados em derivação
- Segunda derivada
- Exemplos de filtros de Laplaciano
28AlgoritmosBaseados em derivação
- Outros filtros
- Há uma infinidade de filtros lineares e
não-lineares - Para se medir a resposta de filtros não
convencionais usam-se imagens de teste (padrões
sinusoidais, etc) - Permite avaliar os efeitos em termos de
frequências - Exemplos de resultados com padrão de teste
sinusoidal
29AlgoritmosBaseados em morfologia
- Enquadramento
- Uma definição alternativa do conceito de imagem
baseia-se na noção de conjunto de coordenadas que
fazem parte dos objectos da imagem - Exemplo
- Os pixels do objecto A partilham uma propriedade
Objecto - A a propriedade(a) Verdade
Fundo - Ac a a ? A
Imagem binária comdois objectos A e B
30AlgoritmosBaseados em morfologia
- Enquadramento
- A noção de objecto implica conectividade de
pixels - Definições
- As operações fundamentais sobre objectos são
- Translação A x a x a ? A
- Adição/subtracção A ? B ?b?B(Ab) A ? B
?b?B(Ab) - Complemento (fundo)
- Simetria -A -a a ? A
- O objecto A tem conectividade 4- O fundo tem
conectividade 12-4(8)
31AlgoritmosBaseados em morfologia
- Dilatação e Erosão
- A dilatação D(A,B) corresponde à adição A ? B
- A erosão E(A,B) corresponde à subtracção A ? (-B
) - Exemplos
- Tipicamente A é uma imagem e B é um
estruturante (equivale ao núcleo de convolução
dos filtros lineares) - Exemplos de estruturantes comuns
32AlgoritmosBaseados em morfologia
- Dilatação e Erosão
- Teorema da Decomposição
- Para um estruturante B finito, simétrico, sem
buracos e contendo o seu centro (0,0 ? B),
verifica-se queD(A,B) A ? (?A ? B)
nota ?A é o contorno de A - Resulta que apenas basta processar os pixels do
contorno de A, não sendo necessário processar os
pixels do seu interior - Algoritmo rápido de dilatação para cada pixel
do objecto, todos os seus pixels vizinhos (vizC)
de fundo passam a pertencer ao objecto - Algoritmo rápido de erosão cada pixel do
objecto que possua um pixel vizinho (vizC) de
fundo passa a fundo
33AlgoritmosBaseados em morfologia
- Dilatação e Erosão
- Exemplos rápidos
- Importante D(E(A,B),B) ? A ? E(D(A,B),B)
- Abertura e Fecho
- Abertura O(A,B) D(E(A,B),B)
- Tende a suavizar o contorno pelo interior
- Fecho C(A,B) E(D(A,-B),-B)
- Tende a suavizar o contorno pelo exterior
34AlgoritmosBaseados em morfologia
- HitAndMiss
- Operador de alto nível HitMiss(A,B) E(A,B1)
? EC(AC,B2) - B1 e B2 são estruturantes finitos e disjuntos
entre si - Este operador é o equivalente morfológico do
template matching (técnica usada para comparar
padrões com base na sua correlação) - B1 funciona como template para o objecto
- B2 funciona como template para o fundo
35AlgoritmosBaseados em morfologia
36AlgoritmosBaseados em morfologia
- Esqueleto
- Quando realizavel, é uma polilinha que
- Tem largura de 1 pixel
- Passa pelo meio do objecto
- Preserva a topologia do objecto
- Pode ser obtido por um processo iterativo baseado
no B8, não se alterando o pixel central para
fundo se - 1) o pixel estiver isolado
- 2) a remoção do pixel alterar a conectividade
- 3) a remoção do pixel encurtar a linha
37AlgoritmosBaseados em morfologia
- Propagação (Reconstrução)
- Visa reconstruir um objecto parcialmente erodido
ou preencher um objecto definido pelo seu
contorno - Algoritmo iterativo baseado numa imagem semente
S(0), uma imagem máscara A e um estruturante B
S(k) D(S(k-1),B) ? A repetir até S(k)
S(k-1) - Em cada iteração a semente cresce dentro dos
limites de A - As conectividades da fronteira de A e de B devem
ser iguais - A implementação iterativa é ineficiente, mas
existe uma implementação recursiva muito mais
eficiente
38AlgoritmosBaseados em morfologia
39AlgoritmosBaseados em morfologia
- Tratamento de imagens em tons de cinzento
- Os algoritmos anteriores podem ser extendidos
para imagens com mais de dois níveis (16, 64,
256, etc) - Formulações para tons de cinzento
- Dilatação DG(A,B) maxj,k?B am-j,n-k
bj,k - Erosão EG(A,B) minj,k?B amj,nk -
bj,k - Abertura OG(A,B) DG(EG(A,B),B)
- Fecho CG(A,B) -OG(-A,-B)
- Suavização MSmooth(A,B) CG(OG(A,B),B)
- Gradiente MGradient(A,B) 1/2 ? DG(A,B) -
EG(A,B) - Laplaciano MLaplacian(A,B) 1/2 ? DG(A,B)
EG(A,B) - 2A
40AlgoritmosBaseados em morfologia
- Exemplos de filtros em tons de cinzento
Clássicos
Morfológicos
Suavização
Gradiente
Laplaciano
41Técnicas
- Enquadramento
- Os algoritmos apresentados anteriormente podem
ser usados para resolver problemas complexos de
processamento de imagem - Correcção de sombreamento
- Os métodos de geração de imagem podem fazer com
que as imagens exibam artefactos de sombreamento - Imagem brilhante no centro e escura nos
limites - Imagem a escurecer da esquerda para a direita
- Efeitos de lentes sujas, iluminação não uniforme,
etc
42TécnicasCorrecção de sombreamento
- Artefactos de sombreamento
- Geralmente indesejados, mas difíceis de evitar
- A sua eliminação é necessária em algumas
aplicações - Estimação do sombreamento
- A posteriori
- Filtragem passa-baixo aem,n am,n -
LowPass(am,n)K - Filtragem morfológica aem,n am,n -
MSmooth(am,n)K - A priori
- Recurso a imagens de calibração Pretom,n e
Brancom,n aem,n K ? (am,n-Pretom,n) /
(Brancom,n-Pretom,n)
43TécnicasCorrecção de sombreamento
1. O sombreamento indesejado manifesta-se
através de uma rampa linear a crescer da
esquerda para a direita2. Os picos são objectos
44TécnicasMelhoria e restauro
- Enquadramento
- O processo de aquisição de imagem geralmente
envolve degradação da imagem (inadvertidamente) - Desfocagem Movimento da câmara Ruído etc
- Objectivos
- Melhoria visa embelezar a imagem
- Restauro visa repor a verdade na imagem
- Medição do erro
- Usa-se frequentemente uma métrica de erro tipo
RMS Eae,a 1/MN ? ?m ?n aem,n - am,n
2
45TécnicasMelhoria e restauro
- Aumento de nitidez
- Melhorar as silhuetas de uma imagem pode
contribuir para aumentar a sua qualidade visual - Isolam-se as silhuetas de uma imagem
- Amplificam-se essas silhuetas
- Adicionam-se à imagem original
- O Laplaciano é adequado para isolar as silhuetas
aem,n am,n - (K ? ?2am,n)
46TécnicasMelhoria e restauro
- Supressão de ruído
- Pode ser conseguida através de suavização
espacial, levando contudo a perda de nitidez - Os algoritmos de suavização são os mais adequados
- Exemplos
47TécnicasMelhoria e restauro
- Supressão de distorsão
- Um modelo simples assume o ruído como única fonte
de distorsão, mas existem modelos mais realistas - O filtro Wiener (domínio das frequências) é uma
boa solução para distorsões baseadas em ruído - Exemplo
- A imagem Wiener é mais nítida mas exibe
artefactos - A imagem Mediana é mais esbatida mas disfarça
artefactos
48TécnicasSegmentação
- Enquadramento
- Designa as diversas técnicas capazes de
distinguir objectos de interesse do resto
(fundo) - Não há uma técnica de segmentação universal ou
perfeita - Limiarização
- Recorre a um limiar de intensidade para definir o
objecto - A escolha do limiar de intensidade adequado é
fulcral - Escolha do limiar via histograma
- ExemploLimiar155
49TécnicasSegmentação
- Limiarização
- Escolha do limiar pelo algoritmo do triângulo
- ExemploLimiar152
- Determinação de fronteiras
- Uma alternativa à limiarização consiste em
encontrar os pixels que definem as fronteiras do
objectos - Gradiente
- Exemplo
50TécnicasSegmentação
- Determinação de fronteiras
- Cruzamento do zero (método LoG)
- Consiste em usar o filtro Laplaciano e processar
os cruzamentos do zero da 2ª derivada (mudança
de sinal) - Requer suavização para evitar o excesso de ruído
gerado - Método PLUS
- Também baseado no cruzamento o zero do
Laplaciano e no filtro de suavização SDGD(a) - Método geral
51TécnicasSegmentação
- Exemplos
- Nota após se encontrar a fronteira dos objectos,
podem usar-se algoritmos de propagação para
preenchimento
52TécnicasSegmentação
- Morfologia binária
- Filtragem sal e pimenta (remoção de pixels
isolados) - Determinação de objectos com furos
- Exemplo
- Preenchimento de furos em objectos
- Exemplo
53TécnicasSegmentação
- Morfologia binária
- Remoção de objectos nos limites da imagem
- Exemplo
- Geração de exoesqueleto
- Exemplo
54TécnicasSegmentação
- Morfologia binária
- Separação de objectos que se tocam
- Segmentar imagem inicial para obter imagem
binária - Efectuar um número pequeno de erosões da imagem
(N4) - Calcular o exoesqueleto da imagem erodida
- Inverter a imagem do exoesqueleto erodido
- Combinar imagem final através de AND da imagem
inicial com a imagem invertida do exoesqueleto
erodido!
55TécnicasSegmentação
- Morfologia de tons de cinzento
- É uma extensão das técnicas de morfologia binária
- Permite abordar os problemas a alto nível
- Exemplo método local de alargamento de contraste
- Processa informação de contraste a nível local
- Consegue-se obter uma solução mais satisfatória
- Exemplos
56Conclusão
- Presente
- O processamento de imagem cada vez está mais
embebido em aplicações sofisticadas e intuitivas - Ainda há problemas por resolver satisfatoriamente
- Futuro
- O processamento de imagem tenderá a evoluir para
processamento de sequências de imagem (vídeo,
etc) - Irão surgir mais implementações em hardware
- A investigação deslocar-se-á para temas de mais
alto nível, que usarão o P. I. como mais uma
ferramenta
57Informação Adicional
- Sugestões
- Tutoriais
- http//www.google.pt/search?qimageprocessingtut
orial - Softwares livres
- VIPS - http//www.vips.ecs.soton.ac.uk/(MS-Window
s http//www.vips.ecs.soton.ac.uk/vips-7.8/nip-7.
8.14.zip) - GIMP - http//www.gimp.org/(MS-Windowshttp//www
.gimp.org/tml/gimp/win32) - Sítios web e documentos
- Processamento de imagem em GPUs (placas
gráficas) - http//www.gpgpu.org/ (seguir ligação Image and
Volume Processing) - http//www.vis.uni-stuttgart.de/eng/research/pub/p
ub2000/vmv00-hopf.pdf
58FIM