Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Projeto LAEDI — Análise de Imagens de Pista

Este repositório contém o desenvolvimento do projeto semestral da disciplina de Laboratório de Algoritmos e Estruturas de Dados I (LAEDI) do CEFET-MG.

O objetivo principal do projeto é desenvolver algoritmos para processamento de perfis de imagens digitais (representados por vetores de inteiros) para auxiliar na navegação autônoma em uma pista em miniatura. O projeto é dividido em quatro partes progressivas.


📋 Visão Geral do Projeto

O sistema simula a visão de um robô que percorre uma pista preta com bordas brancas e centro vermelho. A entrada de dados consiste em vetores numéricos que representam linhas de pixels da imagem capturada.

Mapeamento de Cores

Para todas as etapas, utiliza-se o seguinte mapeamento de valores:

  • 0 (Preto): Mapeado para 1
  • 128 (Vermelho): Mapeado para 2
  • 255 (Branco): Mapeado para 3

🚀 Etapas do Desenvolvimento

Parte I: Busca por Padrão em Sequência

Objetivo: Identificar se uma linha da imagem contém a pista completa.

  • Método: Busca de padrão utilizando Autômato Finito Determinístico (DFA) ou algoritmo KMP.
  • Padrão Alvo: Sequência 1 3 2 3 1 (Preto, Branco, Vermelho, Branco, Preto).
  • Saída: Indica se o padrão foi encontrado ou não na linha fornecida.

Parte II: Estimativa do Formato da Pista

Objetivo: Determinar a geometria da pista (reta ou curva) analisando múltiplas linhas ($L$).

  • Método:
    1. Identificação do segmento da pista (região 2) em cada linha.
    2. Cálculo do ponto médio do segmento: $(p + q) / 2$.
    3. Análise da tendência de deslocamento dos pontos médios.
  • Condição: O padrão deve ser identificado em pelo menos 70% das linhas.
  • Classificações:
    • Curva a direita
    • Curva a esquerda
    • Pista em linha reta

Parte III: Detecção de Impedimentos

Objetivo: Detectar obstáculos físicos sobre a pista.

  • Método: Análise da integridade da região central da pista.
  • Lógica: Um obstáculo altera o padrão original (1 3 2 3 1), dividindo a região vermelha (2) e criando novos segmentos (ex: 1 3 2 3 2 3 1).
  • Saída:
    • Pista sem impedimento
    • Pista com impedimento

Parte IV: Documentação Técnica

Objetivo: Elaboração do relatório final de implementação.

  • Formato: PDF (Máx. 5 páginas).
  • Conteúdo Obrigatório:
    1. Introdução: Descrição dos problemas e soluções.
    2. Desenvolvimento: Estruturas de dados, funções principais e decisões de projeto.
    3. Conclusão: Análise de dificuldades e limitações.
    4. Referências: Bibliografia utilizada.

🛠️ Requisitos Técnicos

  • Linguagem: C ou C++.
  • Compilador: gcc ou g++.
  • Ambiente de Execução: Sistema Linux.
  • Restrições:
    • Proibido uso de bibliotecas de terceiros para a lógica principal.
    • Código deve compilar sem warnings.
    • Identação e comentários explicativos são obrigatórios.

📦 Compilação e Execução

Para compilar o projeto, utilize o seguinte comando no terminal:

gcc main.c -o projeto.c -Wall

Para executar com um arquivo de entrada:

./projeto

📝 Autoria

Instituição: Centro Federal de Educação Tecnológica de Minas Gerais (CEFET-MG) Disciplina: Laboratório de Algoritmos e Estruturas de Dados I Professora: Natália Batista

Desenvolvido por:

  • Wescley Júnior
  • Giovanni Estevam

About

C-based image processing system for autonomous robot navigation. Implements pattern matching algorithms (DFA/KMP) to analyze track geometry and detect physical obstacles.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages