GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Posso analisar um gabarito usando o OpenCV?

python
opencv
Tags: #<Tag:0x00007f61085b5ca0> #<Tag:0x00007f61085b42d8>
#1

Tô pensando em fazer um corretor de provas como projeto de faculdade, gostaria de saber se eu consigo fazer a analise dos gabaritos com visão computacional usando OpenCV. Já fiz pequenos projetos, como detecção e reconhecimento facial e de objetos, mas não sei como usá-lo para reconhecer gabaritos.

0 Likes

#2

Sim. Pode.

Como os gabaritos são imagens bem padronizadas há várias formas de fazer isso.

Uma das que parece simples seria binarizar a imagem e utilizar análise de componentes conectados, com a função cv::findContours. Como os locais pintados devem ser mais ou menos fixos, só testar suas posições já deve resolver…

Você pode analisar o tamanho dos contornos usando a cv::boudingRect.

Lembre-se que funções de contornos podem ser bem combinadas com operações de dilatação ou erosão morfológica. Isso permite que vc elimine, por exemplo, gabaritos não pintados (com erosão) antes de buscar contornos.

E, claro, definir também os ROIs antes de aplicar os algoritmos pode ajudar.

1 Like

#3

Como faço para testar as posições?

Capturar

1 Like

#4

Use a cv::boundingRect. Como o gabarito tem posições padronizadas, vc pode fazer um teste de colisão simples para as áreas onde vc espera que as respostas estejam.

Caso vc não tenha um escaneamento tão padrão, o ideal seria procurar por algum outro elemento ou marcador que permite vc descobrir a orientação da página. Pode ser uma logo ou, caso tenha controle sobre o gabarito, insira vc esses marcadores nos cantos da folha.

1 Like

#5

Segui o passo a passo deste código e funcionou normalmente. Agora vou estudar cada linha para entender melhor e procurar aperfeiçoar para deixar da forma como quero. Obrigado @ViniGodoy.

0 Likes