• No results found

3. Theorizing knowledge with assemblage thinking

3.2 What is an assemblage?

/* função para computação do último leveling por vértice (Equação 6.10) e das funções associadas */ 1 computação-do-último-leveling-por-vértice(Vértice C)

2 se∃i ∈ I tal que C ∈ N r(i) então

3 r+

i (C) ← [level(C) − level(Pai(C)) ∨ 0]

4 r

i (C) ← [level(Pai(C)) − level(C) ∨ 0]

5 se Pai(C) ∈ N r(i) então

6 r+ i (C) ← r+i(C) + ri+(Pai(C)) 7 r− i (C) ← r − i (C) + r − i (Pai(C))

// Atualização das funções associadas

8 q+ I(C) ← q+I(Pai(C)) 9 q− I(C) ← q − I(Pai(C)) 10 qκ+(C) ← q+κ(Pai(C)) 11 qκ−(C) ← qκ−(Pai(C)) 12 senão // Computação de q+ I, q−I, qκ+ e q−κ 13 ser+(C) > R+(Pai(C)) então 14 q+ I(C) ← i + 1

15 qκ+(C) ← κ(C) // A i-ésima primitiva gerou máximos resíduos positivos

16 senão

17 q+

I(C) ← q+I(Pai(C))

18 qκ+(C) ← q+κ(Pai(C)) // Atualização das funções associadas

19 ser

i (C) > R−(C) então

20 q

I(C) ← i + 1

21 qκ−(C) ← κ(C) // A i-ésima primitiva gerou máximos resíduos negativos

22 senão

23 q

I(C) ← qI−(Pai(C))

24 qκ−(C) ← qκ−(Pai(C)) // Atualização das funções associadas

// Manter atualizados os máximos residuos

25 R+ θ(C) ← R + θ(Pai(C)) ∨ r + i (C) 26 R− θ(C) ← R − θ(Pai(C)) ∨ r − i (C)

27 para cadaS∈ Filhos(C) faça

28 computação-do-último-leveling-por-vértice(S)

/* função para computação do último leveling e das funções associadas */

1 computação-do-último-leveling-por-árvore(Árvore Tf) 2 para cadaC∈ Filhos(Raiz(Tf)) faça

3 computação-do-último-leveling-por-vértice(C)

4 para cadap∈ D faça

5 [Rθ(f )](p) ← [R+ θ(SC(Tf, p))](p) ∨ [R−θ(SC(Tf, p))](p) 6 seq+ I(SC(Tf, p)) > q−I(SC(Tf, p)) então 7 qI(p) ← q+ I(SC(Tf, p)) 8 senão 9 qI(p) ← q− I(SC(Tf, p)) 10 seq+κ(SC(Tf, p)) > qκ(SC(Tf, p)) então 11 qκ(p) ← qκ+(SC(Tf, p)) 12 senão 13 qκ(p) ← qκ−(SC(Tf, p)) 14 retorne(Rθ(f ), qI, qκ)

/* função principal para computar um último leveling */

1 computação-do-último-leveling(Imagem f ) 2 Tf ← construa-a-árvore(f )

3 (Rθ(f ), qI, qκ)) ← computação-do-último-leveling-por-árvore(Tf) 4 retorne(Rθ(f ), qI, qκ)

Na Figura 6.7 são apresentados exemplos de operadores últimos levelings onde a família de primitivas são: aberturas por atributo de altura, fechamento por atributo de altura e últimos filtros

82 ÚLTIMOS LEVELINGS 6.4 por grãos utilizando atributo de altura.

253 203 126 60 161 72 54 39 126 30 38 78 nulo nulo 77 143 42 54 149 122 77 131 88 125 nulo nulo 5 + 1 3 + 1 2 + 1 5 + 1 3 + 1 0 + 1 2 + 1 0 + 1 1 + 1 2 + 1 nulo nulo 54 6 131 54 6 9 131 9 0 131 Árvore Tfcom os níveis de cinza Árvore Tfcom os resíduos r−i Árvore Tfcom os índices qIdos máximos resíduos Árvore Tfcom os atributos (altitudes) qκdos máximos resíduos

Imagem de entrada f Último leveling negativo R−

θ(f ) Rotulação da imagem associada qI Rotulação da imagem associada qκ

Figura 6.6:Exemplo de computação de último leveling com funções associadas utilizando uma árvore min-

tree.

imagem de entrada UAO UAC UGF

rotulação da imagem associada ao UAO rotulação da imagem associada ao UAC rotulação da imagem associada ao UGF

imagem associada (altitude) ao UAO imagem associada (altitude) ao UAC imagem associada (altitude) ao UGF

Figura 6.7: Exemplos de aplicações de últimos levelings: (da esquerda para direita) imagem de entrada,

Capítulo 7

Estratégias para construções de últimos

levelings

Resumo do capítulo

Neste capítulo são apresentadas estratégias para construções de últimos levelings. Em particular, são apresentadas estratégias para escolha de famílias de primitivas. Dessa forma, um último leveling é o supremo dos i-ésimos resíduos ri extraídos ao longo da

família de primitiva escolhida. Neste processo de extração dos i-ésimos resíduos ri po-

dem existir resíduos extraídos de regiões indesejáveis. Assim, são apresentados neste capítulo estratégias para filtrar resíduos ri indesejáveis extraídos ao longo da família de

primitivas, e assim o último leveling é definido como supremo dos resíduos ri desejáveis.

7.1 Estratégias para escolher a família de primitivas

A escolha da família de primitivas leva em consideração hipóteses sobre as regiões que se pretende extrair os valores residuais de uma imagem e sobre essas hipóteses, constrói-se um espaço de escala contendo as primitivas mais significativas para construção do último leveling. Neste sentido, um ponto de partida para a escolha da família de primitivas é a questão da polaridade dos objetos de interesses, ou seja, se os objetos são claros ou escuros em relação ao seu background. Neste caso, as primitivas podem ser obtidas por reconstruções inferiores ou superiores o que fazem produzirem resíduos positivos R+ (objetos claros) ou negativos R(objetos escuros). Mas, se os objetos de

interesses estiverem em ambas polaridades então as primitivas podem ser obtidas por reconstruções de formas ou alternativamente, pode-se considerar simultaneamente duas famílias de primitivas obtidas por reconstruções inferiores e superiores e depois combinar seus resultados.

O resultado de um operador último leveling é diretamente influenciado pela escolha da família de primitivas as quais são obtidas, como já mencionado, por reconstruções de podas sucessivas de uma árvore. Embora no Algoritmo 6.1, aparece somente o conjunto N r(i) que contém vértices

obtidos pela diferenças entre duas podas consecutivas. Assim, para cada índice i ∈ I de uma família de primitivas, precisa-se determinar o conjunto N r(i). Esta tarefa é simples, mas depende das primitivas incluídas na família de primitivas.

A ideia para determinar a família de primitivas (ver Algoritmo7.1) consiste em fazer marcações dos vértices C da árvore, por meio de um critério Γ : P(D) → {verdadeiro, falso}, de tal forma que a remoção da aresta que conecta um vértice C ao vértice Pai(C) resulta na árvore podada. Assim, estas marcações em uma árvore Tf dão origem as árvores (Tf0,Tf1, . . . ,T

IM AX

f ) obtidas por

84 ESTRATÉGIAS PARA CONSTRUÇÕES DE ÚLTIMOS LEVELINGS 7.1 podas sucessivas e consequentemente os conjuntos N r(i) de vértices removidos entre duas árvores consecutivas. Estas marcações podem ser obtidas (e consecutivamente, cada árvore Ti

f e seu conjunto

N r(i)), por exemplo, através de um percurso em pós-ordem em Tf. Mas é claro, podem ser usados

outros tipos de ordenação para visitar os vértices de Tf, entretanto isto não modifica o resultado dos

últimos levelings graças à Proposição6.15. Na Figura7.1são mostrados dois exemplos de construção da família de primitivas usando o mesmo critério Γ, um pelo Algoritmo7.1 onde as primitivas são produzidas de acordo com o percurso em pós-ordem e a outra família de primitivas estão ordenadas pelo atributo de altura.

Primitivas ordenadas de acordo com o percurso em pós-ordem

T0

f Tf1 Tf2 Tf3 Tf4 Tf5 Tf6

ψ0(f ) ψ1(f ) ψ2(f ) ψ3(f ) ψ4(f ) ψ5(f ) ψ6(f )

r0(f ) r1(f ) r2(f ) r3(f ) r4(f ) r5(f ) R−θ(f )

Primitivas ordenadas pelo atributo de altura

T0

f Tf1 Tf2 Tf3 Tf4 Tf5 Tf6

ψ0(f ) ψ1(f ) ψ2(f ) ψ3(f ) ψ4(f ) ψ5(f ) ψ6(f )

r0(f ) r1(f ) r2(f ) r3(f ) r4(f ) r5(f ) R−θ(f )

Figura 7.1: Exemplo de computação de um último leveling negativo onde é evidenciado que a ordem das

marcações nos vértices da árvore não modifica o resultado final dos últimos levelings.

Por exemplo, o conjunto com maior número de primitivas que podem ser derivadas de uma árvore Tf é dado pelo seguinte critério: um vértice C de uma árvore Tf satisfaz a condição do

7.1 ESTRATÉGIAS PARA ESCOLHER A FAMÍLIA DE PRIMITIVAS 85