1 / 16

Escola Superior de Tecnologia e Gestão de Beja Engenharia Informática – Ano Lectivo 2010/2011

Escola Superior de Tecnologia e Gestão de Beja Engenharia Informática – Ano Lectivo 2010/2011 Estruturas de Dados e Algoritmos Apresentação do Trabalho de Avaliação Connected Component Labeling Realizado por: Eduardo Cardeira nº 6033. Connected Component Labeling – O que é isso ?

yoko-moran
Download Presentation

Escola Superior de Tecnologia e Gestão de Beja Engenharia Informática – Ano Lectivo 2010/2011

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Escola Superior de Tecnologia e Gestão de Beja Engenharia Informática – Ano Lectivo 2010/2011 Estruturas de Dados e Algoritmos Apresentação do Trabalho de Avaliação ConnectedComponentLabeling Realizado por: Eduardo Cardeira nº 6033

  2. ConnectedComponentLabeling – O que é isso ? • O ConnectedComponentLabeling (Marcação de Componentes Conexos) é uma aplicação algorítmica da teoria dos grafos (mais especificamente, a teoria dos StronglyConnectedComponents). • Este algoritmo, maioritariamente aplicado na área da Visão por Computador (ComputerVision), permite processar imagens binárias e colorir cada uma das áreas conexas que as compõem com cores diferentes, permitindo identificar facilmente cada uma delas. • O processo referido permite distinguir, de forma simples, vários objectos presentes numa imagem, o que torna o algoritmo muito útil em diferentes áreas da sociedade, como a medicina, o exército, a robótica ou a astronomia. • Existem várias formas diferentes do algoritmo, as quais incluem os métodos TwoPass, OnePass e vários MultiPass.

  3. ConnectedComponentLabeling – Como Funciona? Passos de Execução ( Segundo o método TwoPass ): FirstPass ( 1ª Passagem ): 1- Percorrer a imagem binária por colunas e linhas, analisando cada pixel;

  4. ConnectedComponentLabeling – Como Funciona? FirstPass ( 1ª Passagem ): 2 – Se o pixel não pertencer à imagem (valor > 0): 1 – Identificar os pixéis vizinhos do actual; 2 – Se não existirem vizinhos, atribuir um novo valor ao pixel; 3 – Caso contrário, descobrir qual o valor mínimo entre os vizinhos e atribuir esse valor ao pixel; 4 – Guardar as equivalências entre marcas diferentes pertencentes a uma mesma área.

  5. ConnectedComponentLabeling – Como Funciona? FirstPass ( 1ª Passagem ): 2 – (Exemplos Visuais):

  6. ConnectedComponentLabeling – Como Funciona? SecondPass ( 2ª Passagem ): 1 – Percorrer novamente a imagem binária, analisando cada um dos pixéis; 2 – Se o pixel não pertencer ao fundo da imagem: 1 – Substituir o valor da marcação do pixel pelo valor mais pequeno correspondente;

  7. ConnectedComponentLabeling – Código da Aplicação A estrutura do código desenvolvido é a seguinte: - Classesdo Projecto: ImageOperations – Métodos para manipulação dum ficheiro de imagem; Main – Executa os métodos principais da função; TwoPass – Contém os métodos responsáveis pelo funcionamento do algoritmo TwoPass.

  8. ConnectedComponentLabeling – Código da Aplicação - Métodos das Classes: - ImageOperations: - openImage – Abre um ficheiro de imagem. - saveImage– Guarda um ficheiro de imagem. - getWidth – Obtém o comprimento da imagem. - getHeight – Obtém a altura da imagem. - imageBinarization – Converte a imagem recebida numa imagem Binária.

  9. ConnectedComponentLabeling – Código da Aplicação - Métodos das Classes: - Main: - main – Chama as operações essenciais da aplicação. - getCPUTime – Obtém o tempo de execução gasto pelo CPU.

  10. ConnectedComponentLabeling – Código da Aplicação - Métodos das Classes: - TwoPass: - getNeighborLabels – Devolve um array com as marcas vizinhas. - numberOfDifferentLabels – Calcula o número de marcas vizinhas diferentes. - getLowestNeighborLabel – Devolve a marca vizinha mais pequena. - labelPixel – Marca um pixel com um determinado valor.

  11. ConnectedComponentLabeling – Código da Aplicação - Métodos das Classes: - TwoPass: - getLabel – Devolve a marca de um pixel. - colorize – Aplica cor a cada uma das áreas de acordo com o valor da sua marca correspondente. - generateColors – Gera cores aleatórias para as várias marcas. - findSet – Devolve o conjunto da lista de equivalências que contém o elemento especificado.

  12. ConnectedComponentLabeling – Código da Aplicação - Métodos das Classes: - TwoPass: - setEquivalences – Gera equivalências entre as várias marcas de uma área conexa. - setLabelValue – Define o valor de uma marca. - run – Corre o método do TwoPass.

  13. ConnectedComponentLabeling – Resultados Obtidos Ao processar três versões de uma mesma imagem com tamanhos diferentes, e contar o tempo de execução do algoritmo para cada uma delas, obteve-se a seguinte tabela de resultados:

  14. ConnectedComponentLabeling – Resultados Obtidos Os dados da tabela permitiram elaborar o seguinte gráfico que relaciona a dimensão das imagens em pixéis, com o tempo de execução do algoritmo:

  15. ConnectedComponentLabeling – Resultados Obtidos Depois de analisar os vários dados podemos concluir que: - O tempo de execução do algoritmo é proporcional ao tamanho da imagem processada; - Quanto menor for o tamanho da imagem a processar, mais eficiente se torna o algoritmo; - Provavelmente, existem métodos mais eficientes do que o TwoPasspara sistematizar o ConnectedComponentLabeling.

  16. ConnectedComponentLabeling – Conclusão Para terminar, podemos dizer que: - Os processos de ConnectedComponentLabelingsão uma forma simples e eficaz de produzir distinção entre áreas conexas de uma imagem; - São úteis na criação e implementação de vários processos essenciais em várias áreas da sociedade e uma das bases principais da Visão por Computador.

More Related