O objetivo do programa é detectar preenchimentos em documentos digitalizados através de métodos de processamento de imagem. Exemplo: Listas de presença de sala de aula e formulários (dentre outros documentos que contenham o fundo branco). Funciona da seguinte maneira, primeiramente é selecionada uma imagem-base (ou imagem modelo) e nela marcar as áreas que deseja que sejam verificadas e gerado um log/relatório dessas áreas.
Em seguida é carregada 01 ou Varias imagens para testar se existe preenchimento ou não nas áreas marcadas a partir da imagem base. E vamos supor que algumas imagens de teste estejam "desalinhadas" (0 a 10 graus) para esquerda ou direita, o programa tem o objetivo tambem de alinhar essa(s) imagen(s) para que fiquem ajustadas a imagem-base e assim o teste de reconhecimento de assinaturas seja mais preciso. Esse é um projeto de TCC2/Monografia, e tenho o prazo de 15 a 20 dias para que seja entregue.
O software pode ser feito via programação web ou desktop. Preferencia: JavaScript, Java, C#, C++, contudo pode ser outra linguagem que você tenha melhor afinidade. Abaixo, segue o roteiro feito por um amigo que programa em JavaScript para melhor entendimento do programa:
1.
Receber via upload a imagem que vai servir de base para a comparação.
2. Selecionar as áreas dessa imagem que deverão ser comparadas. (Lib que pode ser utilizada:
https://github.com/WebSeed/tinycrop)
3. Salvar as áreas selecionadas como imagens, ordenadas de 0 a N.
(Libs que podem ser utilizadas:
https://github.com/EyalAr/lwip,
https://github.com/oliver-moran/jimp,
https://github.com/lovell/sharp)
4. Receber via upload todas as imagens que devem ser comparadas com a imagem-base.
5. Selecionar as mesmas áreas que foram selecionadas na imagem-base, recortá-las e salvá-las.
6. Comaparar cada uma das imagens recortadas conta os recortes da imagem-base. (Libs que podem ser utilizadas:
https://github.com/mapbox/pixelmatch,
https://github.com/yahoo/blink-diff)
7. Fazer contagem de cada comparação, retornando se foi foi detectada diferença ou não.
(Exemplo: lista de presença)
Delivery term: Not specified