Você está na página 1de 39

Processamento de Imagens

Morfologia Matemtica Binria

Prof. Luiz Eduardo S. Oliveira

Universidade Federal do Paran


Departamento de Informtica
http://web.inf.ufpr.br/luizoliveira

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 1 / 39


Objetivos

Introduzir os conceitos bsicos da morfologia matemtica e suas aplicaes.

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 2 / 39


Introduo

A palavra morfologia denota um ramo da biologia que lida com a


forma e a estrutura de animais e plantas.
A morfologia matemtica serve como ferramenta para extrair
componentes da imagem (estrutura e forma) que so teis para a
descrio e representao.
Alem disso, a morfologia matemtica pode ser aplicada para pr- e
ps-processamento de imagens.

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 3 / 39


Elemento Estruturante
Uma operao morfolgica binria determinada a partir da
vizinhana examinada ao redor do ponto central
Essa vizinhana definida por um conjunto bem definido B, chamado
de elemento estruturante.
Um elemento estruturante definido pelos pixels que o formam e que
so representados por . e
O pixel . simplesmente aparecer em B para visualizar seu aspecto
geomtrico. J o pixel marcado com significa um pixel ativo que
tem um papel a desenvolver na interao com a imagem sendo
processada.
Por exemplo:

..
Bcross =
logo
..

Luiz S. Oliveira (UFPR) Processamento de Imagens 4 / 39


Elemento Estruturante

O resultado dessa interao colocado numa posio especifica, a do


ponto central do elemento estruturante, na imagem no momento da
ao.
O simbolo () representa este ponto central (PC) no elemento
estruturante.
Quanto o PC no indicado, ele corresponde ao centro de massa de B

.. . .
Bcross = = ()
.. . .

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 5 / 39


Elemento Estruturante

O elemento estruturante transposto denotado por B



. . . . .
B = . . , ento B = . .
.. . . .

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 6 / 39


Elemento Estruturante

Exemplos de malhas de elementos estruturantes

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 7 / 39


Imagem

Da mesma maneira, por ser binria, a imagem digital X contem dois


tipos de informao, o fundo (representado por .) e os pixels
relevantes (representados por ).
Na forma digital, a imagem X representada entre [] da seguinte
maneira.

.. . ..
. . .

..
B=
..

. . .
.. . ..

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 8 / 39


Operadores Elementares

Eroso
Uma imagem A erodida pelo elemento estruturante B definida por

A B = {x|Bx A}
ou seja, Bx quando posicionado e centrado no pixel x de A deve estar
totalmente contido em A. Nesse caso, dizemos que o pixel relevante.
Exemplo

.. . .. .. . ..
.. .. . . . . .

.. .. = ..

.. .. . . . . .
.. . .. .. . ..
logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 9 / 39


Operadores Elementares

Eroso
Deslocando
o PC, temos
o seguinte
resultado
.. . .. . . . ..
.. . . . . . ..

.. (.). = ..

.. . . . . . ..

.. . .. . . . ..

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 10 / 39


Operadores Elementares

Efeitos da Eroso
Diminuir partculas
Eliminar componentes menores que o elemento estruturante
Aumentar buracos
Permitir a separao de componentes conectados

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 11 / 39


Operadores Elementares

Exemplo
i m p o r t cv2
i m p o r t numpy a s np

img = c v 2 . i m r e a d ( j . png , 0 )
k e r n e l = np . o n e s ( ( 5 , 5 ) , np . u i n t 8 )
#k e r n e l = c v 2 . g e t S t r u c t u r i n g E l e m e n t ( c v 2 .MORPH_RECT, ( 5 , 5 ) )
#k e r n e l = c v 2 . g e t S t r u c t u r i n g E l e m e n t ( c v 2 . MORPH_ELLIPSE , ( 5 , 5 ) )
#k e r n e l = c v 2 . g e t S t r u c t u r i n g E l e m e n t ( c v 2 . MORPH_CROSS, ( 3 , 3 ) )

e r o s i o n = c v 2 . e r o d e ( img , k e r n e l , i t e r a t i o n s = 1 )

c v 2 . imshow ( " e r o s a o " , erosion )


cv2 . waitKey ( 0 )

Voc pode definir o elemento estruturante ou usar os disponveis no


OpenCV atravs da funo cv2.getStructuringElement
Note que o OpenCV considera os pixels brancos como sendo
relevantes.
logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 12 / 39


Exercicios

Aplique a eroso na imagem j.png utilizando diferentes elementos


estruturantes e quantidade de iteraes. Compare os resultados.
j.png

Defina o menor elemento estruturante possvel capaz de eliminar a


linha branca da imagem linha.png
linha.png

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 13 / 39


Operadores Elementares

Dilatao
Uma imagem A dilatada pelo elemento estruturante B definida por
\
A B = {x|Bx A 6= }
ou seja, Bx quando posicionado e centrado no pixel x de A deve ter
interseo com A. Nesse caso, dizemos que o pixel relevante.
Exemplo

.. . .. ..
.. .. ..

.. .. = ..

.. .. ..
.. . .. ..
logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 14 / 39


Operadores Elementares

Exerccio

Efetue a dilatao da imagem A por B


.. . ..
. . . . .

. . . . . . .

.. ..

. . . ..

. . . . .
.. . ..

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 15 / 39


Operadores Elementares

Efeitos da dilatao
Aumentar partculas
Preencher buracos
Conectar componentes prximos

No OpenCV a dilatao est implementada na cv2.dilate. Os parmetros


so os mesmos da cv2.erode logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 16 / 39


Operadores Elementares
Efeitos da dilatao

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 17 / 39


Deteco de Contorno
O contorno de uma imagem A, representado por (A), pode ser
obtido ser obtido atravs da morfologia matemtica da seguinte forma:

(A) = A (A B)

em que o B o elemento estruturante (em geral, um quadrado ou


cruz 3 3).

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 18 / 39


Deteco de Contorno
Exercicio
Implemente a deteco de contorno usando a equao do slide
anterior. O programa deve receber a imagem da esquerda e fornecer
como sada a imagem da direita.
lincoln.png

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 19 / 39


Abertura e Fechamento

Vimos que a eroso e a dilatao podem corrigir defeitos numa


imagem, como fechamento de buracos, desconectar componentes,
etc...
Entretanto, nenhuma imagem corrigida mantm o mesmo tamanho.
A partir da propriedade da iteratividade possvel filtrar sem modificar
as caractersticas de forma e tamanho da imagem.
I Abertura
I Fechamento

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 20 / 39


Abertura
A abertura elimina pequenos componentes e suaviza o contorno.
A abertura de uma imagem A pelo elemento estruturante B,
representada por A B definida como

A B = (A B) B

Deste modo, a abertura de A por B consiste na eroso de A por B


seguida da dilatao do resultado por B.

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 21 / 39


Abertura

No OpenCV, a abertura est implementada na funo


cv2.morphologyEx.
O parmetro cv2.MORPH_OPEN indica a operao de abertura.
o p e n i n g = c v 2 . m o r p h o l o g y E x ( img , c v 2 .MORPH_OPEN, kernel )

Efeitos da abertura
I No devolve, de forma geral, o conjunto inicial.
I Separa componentes.
I Elimina pequenos componentes.
I O conjunto aberto mais regular que o conjunto inicial.
I O conjunto aberto menos rico em detalhes que o conjunto inicial.

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 22 / 39


Fechamento
O fechamento fecha pequenos buracos e conecta componentes.
O fechamento de uma imagem A pelo elemento estruturante B,
representado por A B definido como

A B = (A B) B

Deste modo, o fechamento de A por B consiste na dilatao de A por


B seguida da eroso do resultado por B.

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 23 / 39


Abertura

No OpenCV, a abertura est implementada na funo


cv2.morphologyEx.
O parmetro cv2.MORPH_CLOSE indica a operao de abertura.
o p e n i n g = c v 2 . m o r p h o l o g y E x ( img , c v 2 .MORPH_OPEN, kernel )

Efeitos da abertura
I Preenche buracos no interior dos componentes, inferior em tamanho
em relao ao elemento estruturante.
I Conecta componentes prximos.
I O conjunto fechado mais regular que o conjunto inicial.
I O conjunto fechado menos rico em detalhes que o conjunto inicial.

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 24 / 39


Exemplo

Nesse caso, temos uma imagem corrompida por rudo


Aplicando uma eroso, o rudo eliminado mas os traos da digital
so afinados.
Com a abertura, reconstrumos grande parte dos traos. Entretanto,
alguns traos foram desconectados.

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 25 / 39


Exemplo

Para mitigar esse problema, podemos


I Dilatar a imagem para reconectar os traos
I Ou realizar um fechamento, o que reconecta grande parte dos traos
sem modificar a estrutura dos mesmos.

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 26 / 39


Transformao Hit-or-Miss

Tcnica utilizada para encontrar padres em imagens


Pode ser definida em termos de eroses
Suponha que o objetivo seja encontrar padres quadrados de tamanho
3 3 na imagem abaixo

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 27 / 39


Transformao Hit-or-Miss

Primeiramente, realizamos eroso (A B), em que B um elemento


estruturante de tamanho 3 3
Temos como resultado a imagem abaixo

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 28 / 39


Transformao Hit-or-Miss
Fazendo a eroso do complemento de A, com um elemento
estruturante C (A C ) que englobe B, temos o seguinte

A interseo entre os resultados das duas eroses produz 1 pixel no


logo
centro do quadrado 3 3.

Luiz S. Oliveira (UFPR) Processamento de Imagens 29 / 39


Transformao Hit-or-Miss

Generalizao
Quando procuramos um padro em particular em uma imagem,
devemos definir dois elementos estruturantes
I B1 tem a forma do padro que se busca
I B2 deve englobar B1
I Desta forma, B = (B1 , B2 )
A transformao Hit-or-Miss pode ser escrita como

A ~ B = (A B1 ) (A B2 )

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 30 / 39


Esqueletizao
O esqueleto de uma imagem uma verso afinada da mesma.
Equidistante das bordas
Algumas caractersticas so mais fceis de ser encontradas no
esqueleto, como direo, pontos de curvatura, etc.

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 31 / 39


Esqueletizao
Tabela de operaes usada na construo do esqueleto.

Sequncia de k eroses com o mesmo elemento estruturante: A kB


O processo acaba quando (A kB) B = logo
O esqueleto a unio de todas as diferenas
Luiz S. Oliveira (UFPR) Processamento de Imagens 32 / 39
Esqueletizao
Exemplo

logo

Mtodo de Lantujoul
Luiz S. Oliveira (UFPR) Processamento de Imagens 33 / 39
Esqueletizao
Exerccio
Usando a tabela de operaes apresentada anteriormente, implemente
o mtodo de esqueletizao de Lantujoul.
Apresente a imagem do esqueleto sobreposta a imagem de entrada.

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 34 / 39


Reconstruo Binria

Adicionar um slide sobre reconstruo binaria...

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 35 / 39


Morfologia em Nvel de Cinza

Operaes morfolgicas podem ser tambm aplicadas em imagens em


nveis de cinza
Operadores MAX e MIM
Para imagens coloridas, a operao deve ser aplicada em cada canal
(RGB)
Para imagens em nvel de cinza, o elemento estruturante contm
valores reais.

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 36 / 39


Morfologia em Nvel de Cinza

O valor zero no elemento estruturante contribui para o valor final.


Ou seja, zero diferente de dont care

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 37 / 39


Morfologia em Nvel de Cinza

Dilatao
Selecionar o valor mximo aps sobreposio do elemento estruturante

(I H)(v , u) = max {I (u + i, v + j) + H(i, j)}


(i,j)H

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 38 / 39


Morfologia em Nvel de Cinza

Eroso
Selecionar o valor mnimo aps sobreposio do elemento estruturante

(I H)(v , u) = min {I (u + i, v + j) H(i, j)}


(i,j)H

logo

Luiz S. Oliveira (UFPR) Processamento de Imagens 39 / 39