Processo de Afinamento de Stentiford
|
|
- Lucas Alencastre Sousa
- 5 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 kkco@dei.unicap.br Fonte: Prof a Ana Eliza Árvores Binárias de Busca Objetivo da Utilização Minimizar o número de comparações efetuadas,
Leia maisAlgoritmos e Estrutura de Dados II. Árvore AVL. Prof Márcio Bueno. / Material da Prof a Ana Eliza
Algoritmos e Estrutura de Dados II Árvore AVL Prof Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Material da Prof a Ana Eliza Árvores Binárias de Busca Objetivo da Utilização Minimizar
Leia maisPROF. DR. JACQUES FACON
1 PUCPR- Pontiícia Universidade Católica Do Paraná PPGIA- Programa de Pós-Graduação Em Inormática Aplicada PROF. DR. JACQUES FACON LIMIARIZAÇÃO PELA DERIVADA 2ª DE PAVLIDIS Resumo: Este artigo descreve
Leia maisPROF. 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
Leia maisEstudo 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
Leia maisÁ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
Leia maisAutenticaçã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
Leia maisAula 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
Leia maisÁ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
Leia maisÁrvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura
Árvores B Prof. Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Fonte: Material da Prof a Ana Eliza Lopes Moura Situação Problema Memória Principal Volátil e limitada Aplicações Grandes
Leia maisPROF. DR. JACQUES FACON
PUCPR - Pontifícia Universidade Católica Do Paraná PPGIA - Programa de Pós-Graduação Em Informática Aplicada PROF. DR. JACQUES FACON LIMIARIZAÇÃO PELO OPERADOR LAPLACIANO: MÉTODO DE CHEHIKIAN Resumo: Este
Leia maisÁrvore binária - definição
Árvore binária - definição árvore binária: conjunto finito de nós Æ (árvore vazia) {raiz, sub-árvore esquerda, sub-árvore direita}, onde sae e sad são conjuntos disjuntos Æ ou raiz /* nó da árvore binária
Leia maisINF 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
Leia maisListas 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,
Leia maisÁ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
Leia maisINF 1010 Estruturas de Dados Avançadas
INF 1010 Estruturas de Dados Avançadas Partições dinâmicas 2012 DI, PUC-Rio Estruturas de Dados Avançadas 2012.1 1 Motivação: Como criar um Labirinto? Algoritmo Numere todas as células da grade de 0 a
Leia maisFilas de Prioridade. Uma fila de prioridade pode ser vista como uma generalização das filas com as seguintes duas operações:
Filas de Prioridade e Heaps 9.1 Filas de Prioridade Uma fila de prioridade pode ser vista como uma generalização das filas com as seguintes duas operações: inserir um elemento na fila; remover o elemento
Leia maisIntroduçã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
Leia maisTrabalho 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)
Leia maisLista 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
Leia maisÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior
ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior Árvore Binária de Busca (ABB) o valor associado à raiz é sempre maior que o valor associado a qualquer nó da sub-árvore à esquerda
Leia maisDAINF - 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.
Leia maisÁ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
Leia maisFerramenta 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
Leia maisProgramaçã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
Leia maisPROGRAMAÇÃ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)
Leia maisProcessamento de Imagens
Processamento de Imagens Prof. Dr. Márcio Sarroglia Pinho 1 Histogramas Equalização Histogramas alpha = 255 / numpixels for each pixel g(x,y) = cumulativefrequency[f(x,y)] * alpha end for http://www.generation5.org/content/2004/histogramequalization.asp
Leia maisvoid ins_ele (ARV_BIN_BUSCA *arv, int v) { if (!(*arv)) maketree(arv, v); else if (v<info(*arv)) /* if (v<(*arv)->info) */ ins_ele(&((*arv)->left),
void ins_ele (ARV_BIN_BUSCA *arv, int v) { if (!(*arv)) maketree(arv, v); else if (vleft), v); else ins_ele(&((*arv)->right), v); 466 467 Árvore
Leia maisCES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra
CES- Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra Árvores CES- Operações sobre uma árvore Estruturas para armazenar árvores Contígua Contígua melhorada Encadeada
Leia maisBCC202 - 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:
Leia maisProf. Jesus José de Oliveira Neto
Prof. Jesus José de Oliveira Neto São estruturas de dados adequadas para a representação de hierarquias. Uma árvore é composta por um conjunto de nós. Existe um nó r, denominado raiz, que contém zero ou
Leia maisEstrutura de Dados Listas
Universidade Federal da Paraíba Centro de Informática Departamento de Informática Estrutura de Dados Listas 1 Tiago Maritan tiago@ci.ufpb.br Conteúdos Abordados O Conceito de Listas Listas com Representação
Leia maisPrincí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:
Leia maisÁ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,
Leia maisSCC 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{
Leia maisESTRUTURA 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
Leia maisÁ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
Leia maisÁ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
Leia mais2 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 (alexk@dainf.ct.utfpr.edu.br) Especificação do Primeiro Trabalho Prático
Leia maisÁ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,
Leia maisEstruturas de Dados II
Estruturas de Dados II Rodrigo Porfírio da Silva Sacchi rodrigosacchi@ufgd.edu.br 3410-2086 Aula 2: Árvores http://www.do.ufgd.edu.br/rodrigosacchi Árvores Definição: Árvores Uma árvore T é um conjunto
Leia maisMé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
Leia maisUniversidade Federal de Mato Grosso Estrutura de Dados II
Universidade Federal de Mato Grosso Estrutura de Dados II Curso de Ciência da Computação Prof. Thiago P. da Silva thiagosilva@ufmt.br Agenda Definições Fator de Balanceamento Estrutura de um Nó Operações
Leia maisAlgoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira.
Algoritmos e Estrutura de Dados II Árvore Prof a Karina Oliveira kkco@dei.unicap.br Introdução Estruturas de dados lineares (pilha, fila) são estruturas que guardam coleções de elementos que são acessados
Leia maisÁ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
Leia maisEstruturas de Dados. Parte dos slides a seguir são adaptações, extensões e recodificações em C dos originais:
Estruturas de Dados Listas Dinâmicas Simplesmente Encadeadas Prof. Ricardo J. G. B. Campello Créditos Parte dos slides a seguir são adaptações, extensões e recodificações em C dos originais: disponíveis
Leia maisÁ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 Conteúdo 2 Árvores Definições Conceitos Algoritmos Árvore Binária Implementação Algoritmos Árvore
Leia maisProf. Jesus José de Oliveira Neto
Prof. Jesus José de Oliveira Neto É uma das estruturas de dados mais simples A idéia fundamental da pilha é que todo o acesso a seus elementos é feito através do seu topo. Assim, quando um elemento novo
Leia maisAula 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
Leia maisESTRUTURAS DE DADOS (LEI, LM, LEE) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2018/2019
ESTRUTURS DE DDOS (LEI, LM, LEE) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2018/2019 Árvores Binárias o contrário das estruturas focadas até ao momento, as árvores
Leia maisFilas. 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:
Leia maisPilhas 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
Leia maisÁrvores, Árvores Binárias e Árvores Binárias de Pesquisa. Rui Jorge Tramontin Jr.
Árvores, Árvores Binárias e Árvores Binárias de Pesquisa Rui Jorge Tramontin Jr. Tópicos Abordados Introdução Definição de Árvore Árvores Binárias Árvores Binárias de Pesquisa (ABP) UDESC / Rui J. Tramontin
Leia maisTrabalho Prático: Camada Física
Descrição Simular o funcionamento do enlace físico através da implementação das seguintes codificações Binária Manchester Manchester Diferencial Detalhes do projeto Conforme explicado em sala de aula Principais
Leia maisEstruturas de dados e algoritmos fundamentais
Ministério da Ciência, Tecnologia e Ensino Superior U.C. 21046 Estruturas de dados e algoritmos fundamentais 21 de Junho de 2013 INSTRUÇÕES PARA A RESOLUÇÃO DO EXAME, ACONSELHA-SE QUE LEIA ATENTAMENTE
Leia maisFabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes
Árvores Fabrício J. Barth BandTec - Faculdade de Tecnologia Bandeirantes Setembro de 2011 Tópicos Introdução Árvores binárias Implementação em Java Ordens de percurso em árvores binárias Altura de uma
Leia maisCONTROLE DE FLUXO. Algoritmos e Programação. Prof. Alceu Britto Slides cedidos pelo Prof. Edson J. R. Justino (PUCPR) Aula 9 e 10
Algoritmos e Programação Prof. Alceu Britto Slides cedidos pelo Prof. Edson J. R. Justino (PUCPR) Aula 9 e 10 UEPG CONTROLE DE FLUXO Estrutura de Controle de Fluxo Comando FOR Comando DO-WHILE Comando
Leia maisAlgoritmos e Técnicas de
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br
Leia maisÁ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
Leia maisSUMÁ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
Leia maisÁ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 paulovic@icmc.usp.br Instituto
Leia maisLista com saltos - generalidades
Lista com saltos - generalidades - Foram propostas em 1989 por William Pugh, professor da Universidade de Maryland; - Permitem operações de consulta, inserção e remoção mais eficientes do que as listas
Leia maisProva 2 PMR2300 1o. semestre 2015 Prof. Thiago Martins
Prova PMR00 o. semestre 0 Prof. Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço.. ( pontos) Um heap binário é uma árvore binária completa (todos os níveis exceto o último
Leia maisEstrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Árvores (parte 2) Estruturas de Dados 2 Organização dos dados: Linear: Listas, pilhas, filas. Relação sequencial.
Leia maisEAD ARVORE BINÁRIA - ARMAZENAMENTO NÃO SEQUENCIAL COM VETORES
EAD ARVORE BINÁRIA - ARMAZENAMENTO NÃO SEQUENCIAL COM VETORES Estrutura de dados: - Arvore é um vetor em que cada componente (nodo) é composto por 3 campos: - Elemento (informação a tratar), que pode ser
Leia maisÁrvores binárias de busca
Árvores binárias de busca S-202 lgoritmos e Estruturas de Dados I Prof. Thiago. S. Pardo Árvore binárias Árvores de grau 2, isto é, cada nó tem dois filhos, no máximo Raiz D B E Terminologia: filho esquerdo
Leia maisAlunos: Caio Santos Renato Miceli
rangel@dscufcgedubr/ rangeldequeirop@yahoocombr Alunos: Caio Santos Renato Miceli UNIVERSIDADE FEDERAL DE CAMPINA GRANDE UFCG Av Aprígio Veloso, S/N Bodocongó CEP: 58109-190 Campina Grande PB www.ufcg.edu.br/
Leia maisAlgoritmos e Estruturas de Dados 2006/2007
Filas de prioridade Algoritmos e Estruturas de Dados 2006/2007 Filas de prioridade Uma fila de prioridade permite, pelo menos, duas operações sobre um conjunto de valores comparáveis: inserção de um elemento
Leia maisEAD 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
Leia maisHeapSort. 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
Leia maisAULA 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
Leia maisListas - 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
Leia maisUNIVERSIDADE 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
Leia maisListas 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
Leia maisFilas. 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é
Leia maisINF1007: 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
Leia maisÁ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á
Leia maisAula 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
Leia maisUFJF - 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
Leia maisIntroduçã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
Leia maisÁ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
Leia maisFilas de prioridade. Marcelo K. Albertini. 27 de Novembro de 2014
Filas de prioridade Marcelo K. Albertini de Novembro de / Filas de prioridade O que é uma fila de prioridade? Estrutura de dados que generaliza a ideia de ordenação. Coleções de elementos: inserir e remover
Leia maisFilas de prioridade. Marcelo K. Albertini. 3 de Dezembro de 2013
Filas de prioridade Marcelo K. Albertini de Dezembro de / Filas de prioridade O que é uma fila de prioridade? Estrutura de dados que generaliza a ideia de ordenação. Coleções de elementos: inserir e remover
Leia maisÁ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
Leia maisMorfologia 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
Leia maisÁ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
Leia maisDas 5102 Fundamentos da Estrutura da Informação
Das 5102 Fundamentos da Estrutura da Informação Gabarito da Segunda Prova 1. Tipos Abstratos de Dados TADs é uma forma programar. Eles permitem a estrutura de programas em módulos correlacionando estruturas
Leia maisPOO Programação Orientada a Objetos. Classes e Objetos 2
+ POO Programação Orientada a Objetos Classes e Objetos 2 +Roteiro 2 Criando objetos Operador new A heap e variáveis que referenciam objetos Manipulando objetos Chamando métodos Destruição de objetos O
Leia maisÁ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ó
Leia maisTabelas 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
Leia maisRevisã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
Leia maisPilha. 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 paulovic@icmc.usp.br Instituto de Ciências
Leia maisBruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Aula 07: Filas
Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Aula 07: Filas O que é uma fila? 1 4 3 2 Fila 1 2 3 4 O que é uma fila? 1 Fila 1 2 3 4 O que é uma fila? 1 2 Fila 2 3 4 O que é uma fila? 1 3 2
Leia maisESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2002/ Valores
ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA INTRODUÇÃO À PROGRAMAÇÃO (ENG. INFORMÁTICA) COMPUTADORES E PROGRAMAÇÃO I (ENG. ELECTROTÉCNICA) 2002/2003 TRABALHO PRÁTICO Nº
Leia maisEstruturas de seleção. Prof.: Jesus
Estruturas de seleção Prof.: Jesus Estrutura de seleção Etapa em um programa onde uma condição é avaliada e, dependendo do resultado, diferentes ações podem ser realizadas Seleção simples Uma ou mais ações
Leia maisProgramaçã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
Leia maisÁ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:
Leia maisÁ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
Leia maisProgramaçã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.:
Leia mais