Processo de Afinamento de Stentiford
|
|
|
- Lucas Alencastre Sousa
- 7 Há anos
- Visualizações:
Transcrição
1 PUCPR- Pontifícia Universidade Católica Do Paraná PPGIA- Programa de Pós-Graduação Em Informática Aplicada PROF. DR. JACQUES FACON Processo de Afinamento de Stentiford Resumo O algoritmo estudado para este trabalho é baseado no processo de afinamento de Stentiford. Este algoritmo será integrado ao programa PDImagem afim de se obter uma nova ferramenta para o processamento de imagens. Este algoritmo tem a finalidade de afinar os objetos contidos em uma imagem binária. O que se deseja com o afinamento é fazer com que os objetos da imagem fiquem apenas um pixel de largura e/ou altura no final de seu processamento, como se fosse um esqueleto deste objeto. Como acontece na maioria dos algoritmos de afinamento, o algoritmo de Stentiford se baseia na remoção de pixels por camadas. Várias iterações são feitas para remoção de cada camada. Estas iterações ocorrem até não existirem mais camadas a serem retiradas. O processo de remoção, como e qual pixel será removido, é definido através de algumas regras e máscaras. Palavras chaves: afinamento, Stentiford, processamento, imagem, binária, morfologia.
2 Introdução O objetivo deste estudo é o aprendizado de técnicas de processamento de imagens binárias, aprimorando, ao mesmo tempo, o software PDimagem. Este software está sendo desenvolvido para fins didáticos e servirá para futuros estudantes possam acrescentar novos métodos e aprender os que já estão implementados. O algoritmo de Stentiford foi estudado e em seguida implementado e adicionado ao PDimagem no Microsoft Visual C Algoritmo de Stentiford O algoritmo de afinamento é descrito utilizando seis passos. Antes da descrição do algoritmo, serão descritos alguns conceitos necessários a este. Pixels: Um pixel (picture element) representa a menor parte de uma imagem. É um único ponto da imagem que, em nosso caso, poderá ser apenas branco (pixel apagado) ou preto (existe um pixel a ser considerado). O ponto branco tem valor igual a 1 e o preto igual a zero. Máscaras (moldes): Quatro máscaras M1, M2, M3 e M4 serão utilizadas para este processo: M1 M2 M3 M4 Onde o círculo branco representa um pixel branco, o círculo preto representa um círculo preto e o X representa que não importa a cor do pixel. Estas máscaras devem percorrer a imagem na seguinte ordem: M1 da esquerda para a direita e de cima para baixo; M2 de baixo para cima e da esquerda para a direita; M3 da direita para a esquerda e de baixo para cima; M4 de cima para baixo e da direita para a esquerda; Pixels Vizinhos (Neighbors): Um pixel tem oito pixels vizinhos. Eles serão numerados da seguinte forma:
3 N4 N3 N2 N5 N0 N1 N6 N7 N8 Obs.: N0 é o pixel analisado. Ponto Final (Endpoint): Um ponto final é um pixel preto que tem apenas um outro pixel preto como seu vizinho. Estes pixels não podem ser apagados. Número de Conectividade (Connectivity Number): Alguns pixels não podem ser apagados pois eles fazem a ligação entre duas partes de um objeto. Se eles forem apagados, o objeto se dividirá em outros objetos menores e isto não pode acontecer. O pixel analisado só poderá ser apagado se o seu número de conectividade (C n ) for igual a um. Para determinar o número de conectividade foram estudados dois métodos: 1. Através da seguinte fórmula: C S n = = k S N k 1,3,5,7 ( Nk Nk + 1 Nk + 2) 2. O número de conectividade C n é igual ao número de mudanças de preto para branco percorrendo os vizinhos na seguinte ordem: N 1, N 2, N 3, N 4, N 5, N 6, N 7, N 8, N 1. Agora, os passos do algoritmo: 1. Percorrer a imagem até encontrar um pixel que se encaixe na máscara M1. 2. Se este pixel não for um ponto final e se o seu número de conectividade = 1, marcar este ponto para que seja apagado mais tarde. 3. Repetir os passos 1 e 2 para todos os pixels que se encaixem na máscara M1. 4. Repetir os passo 1, 2 e 3 para cada uma das máscaras M2, M3 e M4, nesta ordem. 5. Se algum ponto estiver marcado para ser apagado, ele deve ser apagado mudando-o para a cor branca.
4 6. Se algum ponto foi apagado no passo 5, repetir todos os passos a partir do passo 1. Senão, o processo termina. Exemplos Conclusão O algoritmo descrito foi implementado e mostrou funcionar somente para algumas imagens. Para outras imagens, os objetos afinados apresentaram descontinuidade nos seu pixels, o que não pode acontecer. A causa mais provável desta descontinuidade é alguma falha ou imperfeição no processo que verifica o número de conectividade de um pixel. O algoritmo implementado não levou em consideração o fato das máscaras M1, M2, M3 e M4 terem que ser passadas em ordens diferentes pela imagem. Esta ordem não mostrou ser importante já que os pixels só serão realmente alterados em outra etapa (passo) do processo. Referência: [STEN-83] Stentiford F.W. and Mortimer R.G., Some New Heuristics for Thinning Binary Handprinted Characters for OCR, in Algorithms for Image Processing and Computer Vision, JR Parker- John Wiley &Sons, Inc, 1997.
5 Rotina Implementada O algoritmo foi implementado como um método da classe CpdiMorfoB e seu código é: int CPdiMorfoB::AfinamentoStentiford(CDC *pdc) bool ImagemAlterada = true; struct InfoPixels int x; int y; bool V[9]; // obs: cada pixel tem 8 Vizinhos, a entrada bool bapagapixel; // de índice 0 (V[0]) será ignorada ; int dx = (int) GetWidth() - 1; int dy = (int) GetHeight() - 1; HBITMAP HImaAux; CDC DcAux; DcAux.CreateCompatibleDC(NULL); // dx recebe largura da imagem original // dy recebe altura da imagem original // cria um CDC auxiliar HImaAux = CreateDIBitmap(pDC->m_hDC,lpBI,CBM_INIT,lpBits,lpbmi,DIB_RGB_COLORS); if((::selectobject(dcaux.m_hdc, HImaAux)) == NULL) return 0; while(imagemalterada) int x, y, n; UINT index = 0; DWORD qtpixels = 0; // conta o numero de pixels pretos na imagem for(y = 1; y < dy; y++) for(x = 1; x < dx; x++) if( DcAux.GetPixel(x, y) == (RGB(0,0,0)) ) qtpixels++; // aloca espaço necessário para guardar as informações de // todos os pixels pretos InfoPixels *Info = new InfoPixels[qtPixels]; // guarda as informações sobre cada pixel na estrutura Info for(y = 1; y < dy; y++) for(x = 1; x < dx; x++) if( DcAux.GetPixel(x, y) == (RGB(0,0,0)) ) Info[index].x = x; Info[index].y = y; Info[index].bApagaPixel = FALSE; if( DcAux.GetPixel(x+1, y) == (RGB(0,0,0)) ) Info[index].V[1] = false; Info[index].V[1] = true; if( DcAux.GetPixel(x+1, y-1) == (RGB(0,0,0)) ) Info[index].V[2] = false; Info[index].V[2] = true; if( DcAux.GetPixel(x, y-1) == (RGB(0,0,0)) )
6 Info[index].V[3] = false; Info[index].V[3] = true; if( DcAux.GetPixel(x-1, y-1) == (RGB(0,0,0)) ) Info[index].V[4] = false; Info[index].V[4] = true; if( DcAux.GetPixel(x-1, y) == (RGB(0,0,0)) ) Info[index].V[5] = false; Info[index].V[5] = true; if( DcAux.GetPixel(x-1, y+1) == (RGB(0,0,0)) ) Info[index].V[6] = false; Info[index].V[6] = true; if( DcAux.GetPixel(x, y+1) == (RGB(0,0,0)) ) Info[index].V[7] = false; Info[index].V[7] = true; if( DcAux.GetPixel(x+1, y+1) == (RGB(0,0,0)) ) Info[index].V[8] = false; Info[index].V[8] = true; index++; inferior é preto // faz operações para cada uma das máscaras for(int M = 1; M <= 4; M++) for(index = 0; index < qtpixels; index++) int NumPixelsVizinhos = 0, NumConect = 0; bool bpontoterm; bool status = false; == 1) && (Info[index].V[7] == 0) ) direito é preto == 1) && (Info[index].V[1] == 0) ) inferior é branco == 0) && (Info[index].V[7] == 1) ) direito é branco == 0) && (Info[index].V[1] == 1) ) switch( M ) case 1: // verifica se pixel superior é branco e se pixel if( (!Info[index].bApagaPixel) && (Info[index].V[3] break; status = true; case 2: // verifica se pixel esquerdo é branco e se pixel if( (!Info[index].bApagaPixel) && (Info[index].V[5] break; status = true; case 3: // verifica se pixel superior é preto e se pixel if( (!Info[index].bApagaPixel) && (Info[index].V[3] break; status = true; case 4: // verifica se pixel esquerdo é preto e se pixel if( (!Info[index].bApagaPixel) && (Info[index].V[5] break; status = true;
7 if( status ) // verifica se pixel é ponto terminal (Endpoint) for(n = 1; n <= 8 ; n++) if( Info[index].V[n] == 0 ) NumPixelsVizinhos++; if( NumPixelsVizinhos == 1 ) bpontoterm = true; bpontoterm = false; // verifica o numero de conectividade (Connectivity Number) /* NumConect = Info[index].V[1] - (Info[index].V[1] * Info[index].V[2] * Info[index].V[3]); NumConect += Info[index].V[3] - (Info[index].V[3] * Info[index].V[4] * Info[index].V[5]); NumConect += Info[index].V[5] - (Info[index].V[5] * Info[index].V[6] * Info[index].V[7]); NumConect += Info[index].V[7] - (Info[index].V[7] * Info[index].V[8] * Info[index].V[1]); */ for(int temp1 = 1;temp1 <= 8; temp1++) int temp2; if(temp1 == 8) temp2 = 1; temp2 = temp1+1; (Info[index].V[temp2] == 1) ) if( (Info[index].V[temp1] == 0) && NumConect++; // se o pixel não é terminal e seu número de // conectividade é 1, marca este pixel para // ser apagado if( (!bpontoterm) && (NumConect == 1) ) Info[index].bApagaPixel = true; ImagemAlterada = false; // apaga todos os pixels marcados for(index = 0; index < qtpixels; index++) if( Info[index].bApagaPixel ) DcAux.SetPixel( Info[index].x, Info[index].y, RGB(255,255,255) ); ImagemAlterada = true; delete Info; GetDIBits(DcAux.m_hDC, HImaAux, 0, (WORD) GetHeight(), lpbits, lpbmi, DIB_RGB_COLORS); // copia os bits do CDC auxiliar ReleaseDC(NULL,DcAux.m_hDC); DcAux.DeleteDC(); if(himaaux!= NULL) DeleteObject(HImaAux); return 1;
8
Algoritmos e Estrutura de Dados II. Árvore AVL. Prof a Karina Oliveira. Fonte: Prof a Ana Eliza
Algoritmos e Estrutura de Dados II Árvore AVL Prof a Karina Oliveira [email protected] Fonte: Prof a Ana Eliza Árvores Binárias de Busca Objetivo da Utilização Minimizar o número de comparações efetuadas,
PROF. DR. JACQUES FACON MORFOLOGIA MATEMÁTICA FUZZY : ESTUDO COMPARATIVO
PUCPR- Pontifícia Universidade Católica Do Paraná PPGIa- Programa de Pós-Graduação Em Informática aplicada PROF. DR. JACQUES FACON MORFOLOGIA MATEMÁTICA FUZZY : ESTUDO COMPARATIVO Resumo: A teoria dos
Estudo e comparação de algoritmos de esqueletonização para imagens binárias
Estudo e comparação de algoritmos de esqueletonização para imagens binárias R. O. Plotze, e O. M. Bruno Resumo Os algoritmos de esqueletonização são métodos computacionais de processamento e análise de
Árvores Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação
1 Árvores Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 2 Árvore Binária de Busca Definição: uma árvore binária de busca (ABB) é uma árvore binária na qual
Autenticação biométrica utilizando impressão digital. Tales Tenorio de Souza Pimentel
Autenticação biométrica utilizando impressão digital Tales Tenorio de Souza Pimentel 1 Índice Objetivos Motivação O quê é biometria? Minúcias da Impressão Digital Pré-Processamento de Imagem Verificação
Aula 14 Listas Duplamente Encadeadas. prof Leticia Winkler
Aula 14 Listas Duplamente Encadeadas prof Leticia Winkler 1 Lista Duplamente Encadeada É um tipo de lista encadeada que pode ser vazia (NULL) ou que pode ter um ou mais nós, sendo que cada nó possui dois
Árvores Binárias de Busca
Árvores AVL Árvores Binárias de Busca Altura de uma árvore binária (AB): igual à profundidade, ou nível máximo, de suas folhas A eficiência da busca em árvore depende do seu balanceamento Algoritmos de
Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura
Árvores B Prof. Márcio Bueno [email protected] / [email protected] Fonte: Material da Prof a Ana Eliza Lopes Moura Situação Problema Memória Principal Volátil e limitada Aplicações Grandes
INF 1010 Estruturas de Dados Avançadas. Árvores binárias
INF 1010 Estruturas de Dados Avançadas Árvores binárias 1 Árvore estrutura hierárquica: A B E F C D G A B C E F D G A B C D E F G (A (B (E, F)), C, (D (G))) 05/09/16 2 Árvore - definições árvore: nó raiz
Listas Lineares. continuando...
Listas Lineares continuando... 1 Listas! relembrando: listas lineares agrupa informações referentes aum conjunto de elementos que, de alguma forma, se relacionam entre si! Uma lista linear ou está vazia,
Árvores Binárias de Busca
Árvores AVL Árvores Binárias de Busca Altura de uma árvore binária (AB): igual à profundidade, ou nível máximo, de suas folhas A eficiência da busca em árvore depende do seu balanceamento Algoritmos de
Introdução a AVL: teoria e prática. 22/11, 25/11 e 30/11
Introdução a AVL: teoria e prática 22/11, 25/11 e 30/11 Árvores binárias de busca (ABB) Árvores de grau 2, isto é, cada nó tem dois filhos, no máximo Raiz B A C Terminologia: filho esquerdo filho direito
Trabalho Prático: Camada de Enlace de Dados Enquadramento
Enquadramento Descrição Acrescentar ao código do simulador de redes os protocolos vistos para o enquadramento da informação Contagem de caracteres (framing) Inserção de bytes ou caracteres (character stufing)
Lista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35
Lista Ordenada Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Definição Operações Representações Contígua Encadeada Aplicação Exercícios 2
DAINF - Departamento de Informática
DAINF - Departamento de Informática Algoritmos 2 - Árvore binária de busca Prof. Alex Kutzke ( http://alex.kutzke.com.br/courses ) 30 de Novembro de 2015 Slides adaptados do material produzido pelo Prof.
Árvores AVL. Nesta aula será apresentado o ADT árvore AVL que são árvores binárias de altura equilibrada. Algoritmos e Estruturas de Dados I
Árvores AVL Nesta aula será apresentado o ADT árvore AVL que são árvores binárias de altura equilibrada Algoritmos e Estruturas de Dados I José Augusto Baranauskas Departamento de Física e Matemática FFCLRP-USP
Ferramenta de Reconhecimento de Gestos da Mão
Ferramenta de Reconhecimento de Gestos da Mão Rodrigo Bambineti Acadêmico Dalton Solano dos Reis Orientador Roteiro Introdução Objetivo Motivação Processo Visão computacional: Técnicas Realce Morfologia
Programação Aplicada à Engenharia
Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Programação Aplicada à Engenharia Aula 07: Aritmética e Tomada de decisão Silvio Fernandes 2009.1 1 Operadores Aritméticos Operadores
PROGRAMAÇÃO ORIENTADA A OBJETOS I. Prof. Me. Hélio Esperidião
PROGRAMAÇÃO ORIENTADA A OBJETOS I Prof. Me. Hélio Esperidião AVALIAÇÃO 2 avaliações + Lista de Exercícios 1 Prova + 1 Projeto Prova (0-8) + 2 pontos para lista de exercícios entregue no dia da prova. Projeto(0-10)
BCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 09: Listas (Parte 2) Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes Email:
Estrutura de Dados Listas
Universidade Federal da Paraíba Centro de Informática Departamento de Informática Estrutura de Dados Listas 1 Tiago Maritan [email protected] Conteúdos Abordados O Conceito de Listas Listas com Representação
Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP
Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Árvores Binárias Árvores Árvores representam estruturas de dados caracterizadas por uma relação hierárquica da informação:
ÁRVORE BINÁRIA DE BUSCA TDA-ABB
ÁRVORE BINÁRIA DE BUSCA TDA-ABB Conceitos Gerais sobre Árvores Uma árvore é uma estrutura hierárquica dividida em níveis, que ou está vazia, ou contém elementos chamados nós; Diferentemente da árvore natural,
SCC 202 Algoritmos e Estruturas de Dados I. Pilhas (Stacks) (implementação dinâmica)
SCC 202 Algoritmos e Estruturas de Dados I Pilhas (Stacks) (implementação dinâmica) Operações alocação encadeada dinâmica typedef struct elem{ tipo_info info; struct elem *lig; tipo_elem; typedef struct{
ESTRUTURA DE DADOS. Árvores, árvores binárias e percursos. Cristina Boeres
ESTRUTURA DE DADOS Árvores, árvores binárias e percursos Cristina Boeres 2 Árvores! utilizada em muitas aplicações! modela uma hierarquia entre elementos árvore genealógica diagrama hierárquico de uma
Árvores Binárias de Busca
Árvores Binárias de Busca Algoritmos e Estruturas de Dados I Nesta aula será apresentado o ADT árvore binária de busca, também conhecidas como dicionários binários Uma árvore binária de busca é uma estrutura
Árvores Binárias. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich
Árvores Binárias SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista. Figuras editadas por Isadora Maria Mendes http://www.icmc.usp.br/~paulovic
2 Segmentação de imagens e Componentes conexas
Universidade Tecnológica Federal do Paraná (UTFPR) Departamento Acadêmico de Informática (DAINF) Algoritmos II Professor: Alex Kutzke ([email protected]) Especificação do Primeiro Trabalho Prático
ÁRVORES E ÁRVORES BINÁRIAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
ÁRVORES E ÁRVORES BINÁRIAS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ÁRVORES Árvores Árvores Binárias INSTITUTO DE COMPUTAÇÃO - UFF 2 ÁRVORES Fonte de consulta: Szwarcfiter, J.; Markezon,
Estruturas de Dados II
Estruturas de Dados II Rodrigo Porfírio da Silva Sacchi [email protected] 3410-2086 Aula 2: Árvores http://www.do.ufgd.edu.br/rodrigosacchi Árvores Definição: Árvores Uma árvore T é um conjunto
Métodos Computacionais. Variações de Listas Encadeadas
Métodos Computacionais Variações de Listas Encadeadas Variações de Listas Encadeadas Listas podem variar quanto ao: Tipo de encadeamento Simples Circulares Duplas Circulares e Duplas Conteúdo Tipos Primitivos
Algoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira.
Algoritmos e Estrutura de Dados II Árvore Prof a Karina Oliveira [email protected] Introdução Estruturas de dados lineares (pilha, fila) são estruturas que guardam coleções de elementos que são acessados
Árvores. Estruturas de Dados. Prof. Vilson Heck Junior
Árvores Estruturas de Dados Prof. Vilson Heck Junior Árvores INTRODUÇÃO Introdução Árvores são estruturas de dados utilizadas para armazenar e recuperar dados de forma rápida e eficiente; Árvores não são
Aula 6 Instruções de Seleção Cleverton Hentz
Aula 6 Instruções de Seleção Cleverton Hentz Sumário de Aula Instrução Condicional Instrução Escolha Teste de Mesa 2 Introdução O fluxo de execução é a sequência(ordem) em que as instruções são executadas
Filas. Prof. Túlio Toffolo BCC202 Aula 12 Algoritmos e Estruturas de Dados I
Filas Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 12 Algoritmos e Estruturas de Dados I O que é uma fila? 1 4 2 3 Fila 1 2 3 4 TAD Fila Tipo Abstrato de dados com a seguinte característica:
Pilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I
Pilhas e Filas Encadeadas Algoritmos e Estruturas de Dados I Pilha Lista linear: pilha Represente graficamente o funcionamento da pilha, representando a pilha vazia, a entrada e a saída de elementos Quais
Árvores & Árvores Binárias
Árvores & Árvores Binárias Problema Implementações do TAD Lista Linear Lista encadeada eficiente para inserção e remoção dinâmica de elementos, mas ineficiente para busca Lista seqüencial (ordenada) Eficiente
SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca
ÁRVORES SUMÁRIO Fundamentos Árvores Binárias Árvores Binárias de Busca 2 ÁRVORES Utilizadas em muitas aplicações Modelam uma hierarquia entre elementos árvore genealógica Diagrama hierárquico de uma organização
Árvores Binárias de Busca
Árvores Binárias de Busca SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic [email protected] Instituto
EAD ARVORE BINÁRIA - ARMAZENAMENTO NÃO SEQUENCIAL COM VETORES
EAD ARVORE BINÁRIA - ARMAZENAMENTO NÃO SEQUENCIAL COM VETORES Árvores Binárias de Pesquisa (ABP) - Definição Árvore binária em que os elementos dos seus nodos têm associado uma chave, que - determina a
HeapSort. Estrutura de Dados II Jairo Francisco de Souza
HeapSort Estrutura de Dados II Jairo Francisco de Souza HeapSort Algoritmo criado por John Williams (1964) Complexidade O(NlogN) no pior e médio caso Mesmo tendo a mesma complexidade no caso médio que
AULA 14 ESTRUTURA DE DADOS
AULA 14 ESTRUTURA DE DADOS Matriz esparsa Norton T. Roman & Luciano A. Digiampietri Matriz Uma matriz bidimensional é um conjunto de elementos (ou tabela) composta por m linhas e n colunas. Matriz Uma
Listas - Outras. Listas Circulares Nós Cabeça Listas Duplamente Ligadas/Encadeadas Aplicações
Listas - Outras Listas Circulares Nós Cabeça Listas Duplamente Ligadas/Encadeadas Aplicações 5 e 7/10/2010 Listas Circulares Encadeadas Dinâmicas Se o nó next do último nó apontar para o primeiro, teremos
UNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Programação II 1º Semestre Frequência 2 Resolução 07/01/2019 1. [1,25 val] - Análise de Complexidade dos Algoritmos Considere o seguinte bloco de código em linguagem C: for
Listas Lineares Ordenadas
Listas Lineares Ordenadas Algoritmos e Estruturas de Dados I Nesta apresentação será apresentado o ADT lista linear ordenada Uma lista linear ordenada, ou simplesmente lista ordenada há uma ordem entre
Filas. Nesta aula veremos o ADT fila Em um computador existem muitas filas esperando pela impressora, acesso ao disco ou, num sistema timesharing,
Filas Nesta aula veremos o ADT fila Em um computador existem muitas filas esperando pela impressora, acesso ao disco ou, num sistema timesharing, pelo uso da CPU Algoritmos e Estruturas de Dados I José
INF1007: Programação 2 8 Listas Encadeadas. (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 8 Listas Encadeadas (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Motivação Listas encadeadas Implementações recursivas Listas de tipos estruturados (c) Dept. Informática
Árvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão
Árvores 1 Árvores! utilizada em muitas aplicações! modela uma hierarquia entre elementos! árvore genealógica! diagrama hierárquico de uma organização! modelagem de algoritmos! O conceito de árvores está
Aula 11 Pilha Dinâmica. prof Leticia Winkler
Aula 11 Pilha Dinâmica prof Leticia Winkler 1 Pilha Dinâmica (Dynamic Stack) Pilha implementada através de uma lista linear encadeada. É uma lista linear encadeada em que as operações de inserção e retirada
UFJF - DCC - Estrutura de Dados e Laboratório de Programação II
UFJF - DCC - Estrutura de Dados e Laboratório de Programação II Árvore Binária (AB) 1. Considerar os tipos abstratos de dados definidos a seguir. Para o nó de uma árvore binária de números inteiros: class
Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas)
Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 Lista Obrigatória 02 - Prof. Rafael Oliveira (Deve ser entregue em PDF via Moodle: Escolha apenas 5 exercícios para entrega) Exercício 01
Árvores Binária de Busca. Prof. César Melo DCC/ICE/UFAM
Árvores Binária de Busca Prof. César Melo DCC/ICE/UFAM Introdução O algoritmo de busca binária em vetores tem bom desempenho e deve ser usado quando temos os dados já ordenados. No entanto, se precisarmos
Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira
Árvores SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Listas e árvores Listas lineares Um nó após o outro, adjacentes Nó sucessor e antecessor Diversas aplicações necessitam de estruturas
Morfologia Matemática em Imagens
Processamento e nálise de Imagens Médicas Morfologia Matemática em Imagens Prof. Luiz Otavio Murta Jr. FMB Departamento de Computação e Matemática (FFCLRP/USP) Principais Tópicos Introdução Morfologia
Árvores binárias de busca
Árvores binárias de busca Introdução à Ciência de Computação II Diego R. Amancio Baseado no material do Prof. Thiago A. S. Pardo Árvore binárias n Árvores de grau 2, isto é, cada nó tem dois filhos, no
Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo
PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó
Tabelas Hash O Que é uma Tabela Hash? O Que é uma Tabela Hash? O Que é uma Tabela Hash? Inserindo um Novo Registro. O Que é uma Tabela Hash?
Tabelas Hash O Que é uma Tabela Hash? Nesta aula são discutidos modos de armazenar informações em um vetor, e depois procurar por uma informação Tabelas Hash constituem uma abordagem comum para o problema
Revisão da Linguagem C Prof. Evandro L. L. Rodrigues
SEL0433 Aplicação de Microprocessadores I Revisão da Linguagem C Prof. Evandro L. L. Rodrigues Estrutura de um programa C Diretivas de pré processamento Declaração de variáveis globais Declaração de protótipos
Pilha. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Gustavo Batista
Pilha SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic [email protected] Instituto de Ciências
Programação II. Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio Árvores Dados organizados de maneira hierárquica Exemplos: arquivos em diretórios, subdivisão de espaço 2D em um
Árvores Binárias de Busca (ABB) 18/11
Árvores Binárias de Busca (ABB) 18/11 Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguintes propriedade: Para todo nó da árvore, se seu valor é X, então:
Árvore Binária de Busca. Prof. César Melo
Árvore Binária de Busca Prof. César Melo Introdução O algoritmo de busca binária em vetores tem bom desempenho e deve ser usado quando temos os dados já ordenados. No entanto, se precisarmos inserir e
Programação de Computadores II. Cap. 17 Busca
Programação de Computadores II Cap. 17 Busca Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais dos profs.:
