Skip to content
This repository was archived by the owner on Mar 10, 2022. It is now read-only.

TheScorpoi/cslp-computer-vision-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cslp-computer-vision-project

O objetivo do projeto é desenvolver software capaz de detetar peças de LEGO, a sua cor, e o seu tamanho.
O software é capaz de reconhecer mulitplas peças de tamanho variável, bem como de várias cores diferentes, em tempo real. A maneira implementada para reconhecer a cor das peças, é verificar se uma determinada região (entenda-se por região, um conjunto alargado de pixeis com valores semelhantes), pertence a alguma cor definida. Para determinar o tamanho da peça, está é feita através de calculos com a largura e o comprimento dos contornos que a peça possui.
O projeto foi todo ele desenvolvido para correr em tempo real num Raspberry Pi 4, com recurso a uma câmara instalada no mesmo.

Demo


Pre-requisitos:

Relativamente aos pre-requisitos, é necessário:

  • Instalação de um compilador de C++.
  • Instalação do CMake.
  • A biblioteca do OpenCV.
  • Instalação da biblioteca boost para C++: sudo apt-get install libboost-all-dev
  • Raspberry Pi 4 (para correr em tempo real o códgo desenvolvido).

Como correr:

Para correr o projeto, é preciso seguir os passos abaixo:

  • Entrar no diretorio src/build/:
cd src/build/
  • Correr o CMake:
cmake ..
  • Compilar o programa em C++:
make
  • Correr o executável gerado pela compilação:
./ComputerVision [opção]

Quanto à opção, esta pode tomar as seguintes letras:

  • -n : O programa é executado e identifica 4 cores pre-definidas (azul, vermelho, amarelo, verde).
  • -c : Calibração da camara.
  • -a : Adição de novas cores para a deteção.
  • -e : Leitura de um ficheiro com informações sobre cores, para a deteção.

Ficheiro apresenta a seguinte estrutura:

  • [Nome da cor] - [HSV mínimo] - [HSV máximo] - [RGB da cor]

Implementação

O projeto está desenvolvido com a seguinte fluxo:

    1. Captação de imagem.
    1. Aplicação de um filtro de Blur.
    1. Converção do espaço de cor BGR para HSV.
    1. Utilização da função inRange para detetar se as cores da imagem captada se encontram dentro do intervalo de cores definidas.
    1. Aplicação de operadores morfológicos - erode() e dilate().
    1. Utilização da função findContours para encontrar os contornos da imagem, e marcação dos pixeis onde será feito o contorno da peça.
    1. Desenho do contorno na janela de video, com a cor, a forma e o tamanho da peça.

About

Projeto sobre visão por computador, relativo à UC "Complementos sobre Linguagens de Programação", onde através da biblioteca OpenCV, é feita uma deteção aprimorada de peças de Lego, bem como, a sua cor, o seu tamanho e a sua forma.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages