Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Trabalho Final Processamento de Imagens, Trabalhos de Processamento de Imagem Digital

O objetivo é utilizar o conhecimento adquirido durante o curso de Processamento de Imagens para destacar na imagem original onde estão as ruas. Observa-se que para isso, é necessário a aplicação de diversas técnicas de pré-processamento e processamento de imagens, já que não é trivial separar elementos de interesse em imagens.

Tipologia: Trabalhos

2017

Compartilhado em 12/07/2023

usuário desconhecido
usuário desconhecido 🇧🇷

3 documentos

1 / 29

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Universidade Federal de São Paulo
Campus São José dos Campos
Bacharelado em Ciência da Computação
Projeto Final da Disciplina Processamento de Imagens
Destaque de Ruas em Imagens Aéreas
Felipe Arquelau Teixeira Pinto - RA: 92219
Thomas Augusto Teixeira de Albuquerque - RA: 92343
Profª. Dra. Regina Célia Coelho
11 de dezembro de 2017
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d

Pré-visualização parcial do texto

Baixe Trabalho Final Processamento de Imagens e outras Trabalhos em PDF para Processamento de Imagem Digital, somente na Docsity!

Universidade Federal de São Paulo

Campus São José dos Campos

Bacharelado em Ciência da Computação

Projeto Final da Disciplina Processamento de Imagens

Destaque de Ruas em Imagens Aéreas

Felipe Arquelau Teixeira Pinto - RA: 92219

Thomas Augusto Teixeira de Albuquerque - RA: 92343

Profª. Dra. Regina Célia Coelho

11 de dezembro de 2017

Sumário

  • 1 Introdução
  • 2 Objetivo
  • 3 Metodologia
    • 3.1 Ambiente de Desenvolvimento
    • 3.2 Pré-processamento e Processamento
    • 3.3 Equalização Exponencial da Intensidade em HSI
    • 3.4 Extração da Camada Azul (B)
    • 3.5 Passagem do Filtro da Mediana
    • 3.6 Fechamento em Níveis de Cinza
    • 3.7 Limiarização de Otsu
    • 3.8 Erosão e Fechamento
    • 3.9 Algoritmo de Contorno de Regiões
    • 3.10 Participação de Cada Integrante
  • 4 Resultados
    • 4.1 Imagens do Resultado de Cada Passo
    • 4.2 Resultado de Todas Imagens
    • 4.3 Validação dos Resultados
    • 4.4 Analise dos Resultados
  • 5 Conclusão

sendo F (g) a função equalizadora, gmin o nível mínimo de cinza na qual a imagem resultante terá, e P (^) g(g) a probabilidade acumulada extráida do histograma. Para realizar o procedimento para equalização em HSI, primeiramente deve ser considerado os três canais existentes no sistema HSI:

  • Matiz
  • Saturação
  • Intensidade O canal matiz refere-se as cores primárias e secundárias. O canal de saturação refere-se ao quanto de branco é somado a cada cor do canal Matiz. E o canal intensidade refere-se ao quão claro ou escuro é uma imagem, ou seja, o quanto de brilho possui a figura. Logo, seria interessante equalizar no canal de intensidade. O procedimento para realizar a equalização exponencial segue da seguinte maneira:
  • Calcule o histograma da imagem;
  • Calcule a probabilidade de cada nivel de cinza do histograma pela dimensão inteira da imagem (linhacoluna);
  • Aplique F (g);
  • Troque cada nivel de cinza antigo da imagem original pelo novo nível de cinza calculado. Os códigos para a conversão do sistema HSI para RGB e vice-versa foram concedidos pela Profª. Dra. Regina Célia Coelho durante o curso de Processamento de Imagens.

3.4 Extração da Camada Azul (B)

Tendo a imagem equalizada na Intensidade, foi observado que, analizando os valores de R (vermelho), G (verde) e B (azul), os telhados e as vegetações possuiam valores predominantes de vermelho e verde, respectivamente, e baixo valor de azul. Já as ruas, por serem cinzas e azuladas, possuíam valores mais altos de azul. Logo, foi decidido trabalhar somente com a camada azul (B) da imagem, pois as ruas iriam se destacar mais, e também porque seria mais eficiente trabalhar com somente um nível de cor e não três. Logo, a camada de azul foi extraída e manipulada em níveis de cinza.

3.5 Passagem do Filtro da Mediana

Com uma imagem em nível de cinza em mãos, em busca de diminuir ruídos do tipo sal e pimenta, foi utilizado um filtro de mediana, com janelamento de tamanho 16x16, que é carac- terizado como um filtro passa-baixa, mantendo as estruras do objeto, desfocando as bordas.

Para realizar um filtro de mediana, os seguintes passos foram seguindos:

  • Ache o pixel inicial da imagem;
  • Encontre a janela de vizinhança (no caso 16x16);
  • Calcule a mediana dos pixels presentes na janela;
  • Substitua o valor do pixel original pelo valor da mediana;
  • Repita o processo para os n pixels restantes da imagem.

3.6 Fechamento em Níveis de Cinza

Em busca de aumentar os pixels de coloração branca, foi construído um processo de matemática morfológica utilizando fechamento aplicado para níveis de cinza. Um fechamento é constituído por n processos de dilatação seguido por n processos de erosão. No caso, essas dilatações e erosões são aplicados para níveis de cinza.

Para realizar dilatações em níveis de cinza os seguintes passos devem ser seguidos:

  • Ache o pixel inicial da imagem;
  • Encontre a janela de vizinhança equivalente ao tamanho do elemento estruturante;
  • Some a janela de vizinhança encontrada com o elemento estruturante;
  • Encontre o maior valor da janela de vizinhança;
  • Substitua o valor do pixel original pelo valor máximo encontrado;
  • Repita o processo para os n pixels restantes da imagem.

Para realizar erosões em níveis de cinza os seguintes passos devem ser seguidos:

  • Ache o pixel inicial da imagem;
  • Encontre a janela de vizinhança equivalente ao tamanho do elemento estruturante;
  • Subtraía a janela de vizinhança encontrada com o elemento estruturante;
  • Encontre o menor valor da janela de vizinhança;
  • Substitua o valor do pixel original pelo valor mínimo encontrado;
  • Repita o processo para os n pixels restantes da imagem.

O elemento estruturante citado serve para moldar a imagem original a fim de se obter uma nova mais interessante. O elemento estruturante utilizado para esse procedimento foi um flat disk SE , conforme é mostrado na Figura 1.

μs 2 =

L∑− 1

i=T +

ipi,

ω 2 =

L∑− 1

i=T +

pi,

A variância global da imagem é calculada por:

σ G^2 =

L∑− 1

i=

(i − μG)^2 pi,

sendo μG = μs 1 + μs 2. A variância entre as duas classes C 1 e C 2 pode ser calculada por:

σ^2 B = ω 1 ω 2 (μ 1 − μ 2 ).

O objetivo do método é maximar a razão N (T ) = σ^2 B σ G^2 , ou seja,^ T^ =^ max(N^ (T^ )). Sendo assim, T será utilizado como limiar para separar os níveis de cinza em duas classes. Com o objetivo de melhorar a limiarização, foi utilizado A = Dilatação em Níveis de Cinza da imagem B - Erosão em Níveis de Cinza da imagem B, obtendo um resultado similar a um filtro laplaciano ou de sobel. Aplicando a limiarização de otsu em A e somando este resultado com a imagem B, e aplicando a limiarização novamente, obtemos um resultado melhor da imagem segmentada.

3.8 Erosão e Fechamento

A erosão para imagens binárias (dois tons de cor) consiste na verificação de pixels que estão no elemento estruturante ao mesmo tempo que estão na imagem original, realizando este procedimento pixel por pixel. A dilatação consiste em cada pixel da imagem original somado ao elemento estruturante, realizando este procedimento pixel à pixel. Diferente da matemática morfológica para níveis de cinza, esta etapa do procedimento foi feita para eliminar pequenas estruturas da imagem segmentada. Primeiro utiliza-se uma erosão para tentar diminuir estruturas pequenas. Depois realiza-se um fechamento (n dilatações seguidas de n erosões) para fechar espaços menores que o elemento estruturante e suavizar con- tornos rugosos. Após esses procedimentos é somado a imagem da erodida com a imagem ero- dida e fechada. Esse procedimento é realizado duas vezes. O elemento estruturante utilizado foi quadrado 3x3.

3.9 Algoritmo de Contorno de Regiões

Com a imagem já devidamente segmentada, utilizou-se um algoritmo simples que tem duas funcionalidades: transformar a segmentação em contornos, ou seja, ignorar a parte branca inte- rior preenchida, pegando somente as bordas; E aplicar esse contorno sobre a imagem original. Para pegar o contorno somente, foi passado um operador que detectasse onde estão as transições de branco para preto, ou de preto para branco na imagem segmentada. O operador é indicado abaixo.

operador = [− 1 1]

Ao passá-lo são detectadas as transições citadas na horizontal. Para achar as transições verticais, basta aplicar a transposta do mesmo operador. Logo, para detectar todo o contorno, é feita a união dos conjuntos de transições horizontais e verticais encontrados. Tendo o contorno encontrado, basta aplicá-lo sobre a imagem original. Isso é feito alterando os valores de R, G e B dos pixels na imagem original nas posições onde estiver os pixels brancos na imagem de contorno. aux = final(:,:,n); aux(contorno>0) = cor(n); final(:,:,n) = aux;

3.10 Participação de Cada Integrante

Inicialmente, foi definido em conjunto qual seria a ideia do projeto, quais seriam as técni- cas aplicadas e qual base de imagens seria utilizada. Feita essa etapa, cada integrante elaborou scripts genéricos de cada funcionalidade, mas já utilizando para testes as imagens aéreas da base escolhida. Com os algoritmos prontos, os códigos foram agrupados e as chamadas organizadas em um arquivo main. A seguir está a divisão da execução de cada parte do trabalho.

Etapas do Trabalho Responsável Ideia do projeto, e extração da base de imagens Felipe e Thomas Equalização Exponencial da Intensidade em HSI Thomas Extração da Camada Azul (B) Thomas Passagem do Filtro da Mediana Thomas Fechamento nos Níveis de Cinza Felipe Limiarização de Otsu Felipe Erosão e Fechamento Felipe Algoritmo de Contorno de Regiões Thomas Organização dos códigos e elaboração da função main Felipe Elaboração do relatório Felipe e Thomas

4 Resultados

4.1 Imagens do Resultado de Cada Passo

Uma das onze imagens da base escolhida é mostrada na Figura 2. Os resultados de cada passo serão mostrados após a aplicação nesta imagem.

Figure 4: Imagem em nível de cinza extraída do canal Blue do RGB

A Figura 5 mostra a aplicação do filtro de mediana na imagem.

Figure 5: Imagem após aplicação de um filtro de mediana com janela de 16x

A Figura 6 mostra a aplicação do processo de fechamento em nível de cinza.

Figure 6: Imagem após aplicação de um fechamento em nível de cinza

As Figuras 7 e 8 mostra a aplicação da limiarização de Otsu junto com um ”filtro” de di- latação - erosão, similar a um filtro Laplaciano, para melhorar a segmentação.

Figure 7: Imagem após aplicação da limiarização da dilatação - erosão da imagem

A Figura 10 mostra a aplicação do contorno na imagem original à partir da imagem seg- mentada.

Figure 10: Imagem após aplicação do contorno

4.2 Resultado de Todas Imagens

As Figuras 11, 12, 13, 14, 15, 16, 17, 18, 19 e 20 relatam o resultado final das outras imagens retiradas do banco de dados e testadas nesse procedimento.

(a)

(b)

(c)

Figure 11: Imagem 1 do banco de dados (a), sua segmentada (b) e após contorno (c)

(a)

(b)

(c)

Figure 13: Imagem 3 do banco de dados (a), sua segmentada (b) e após contorno (c)

(a)

(b)

(c)

Figure 14: Imagem 4 do banco de dados (a), sua segmentada (b) e após contorno (c)

(a)

(b)

(c)

Figure 16: Imagem 6 do banco de dados (a), sua segmentada (b) e após contorno (c)

(a)

(b)

(c)

Figure 17: Imagem 7 do banco de dados (a), sua segmentada (b) e após contorno (c)