Repositório para compartilhar o material da disciplina de Algoritmos e Estrutura de Dados.
Possui, por objetivo, a implementação de código que possa reconhecer, a partir de imagens, peças (parafusos, arruelas e porcas) dispostos em uma folha de ofício A4 (210 x 297 mm).
Para este fim utilizaremos técnicas de visão computacional, com o OpenCV.
- O programa a ser desenvolvido recebe imagens como dados de entrada e deve produzir uma lista com a contagem de cada uma das peças.
- O fluxo do programa seguirá os seguintes passos:
- Pré-processamento:
- Leitura da imagem.
- Converter para escala de cinza.
- Reduzir a resolução.
- Normalização das imagens. Rotações, correções de perspectiva, etc.
- Processamento:
- Detectar as peças.
- Normalizações.
- Selecionar informações relevantes para identificação.
- Identificação da peça e produção de resultados.
- O desenvolvimento irá considerar os seguintes princípios:
- Todos irão participar.
- Algumas etapas do fluxo podem ser simplificadas ou mesmo omitidas numa primeira fase.
- Obter uma versão funcional para as imagens mais simples.
- Identificar quais passos são mais desafiadores e quais etapas geram mais erros.
- Analisar a necessidade de aprimorar cada uma das fases, isto é, não perder tempo em trechos de programa, que podem não se mostrar críticos.
- Documentar bem o código à medida que se avança. Isso facilitará a compreensão e manutenção do código.
Antes de mais nada, é necessário:
- Clone o repositório
git clone
- Instale Pipenv, caso não tenha
pip install pipenv
- Instale as dependências
pipenv install
"Programming is learned by writing programs. In this, programming is similar to other endeavors with a practical component. You cannot learn to swim, to play a musical instrument, or to drive a car just from reading a book — you must practice."
— Bjarne Stroustrup, Programming Principles and Practice Using C++