Ir ao conteúdo
  • Cadastre-se

Corretor de provas usando scanner


geekstarter
Ir à solução Resolvido por atlos,

Posts recomendados

Estou tentando fazer um programa para corrigir provas usando cartão-resposta de provas objetivas.

No momento, minha dificuldade está em obter a imagem do gabarito a partir do scanner.

 

Minha ideia para o programa é a seguinte:

  1. Obter uma imagem do gabarito, em baixa resolução, e transformar numa matriz de 0 e 1, onde 1 é a região pintada e 0 é a região não pintada.
  2. Dar opção de método de correção de prova: número de acertos, ou o método abaixo (TRI?)
    1. Perguntar o peso de cada questão e o conteúdo exigido por elas
    2. Se acertar uma questão de dois conteúdos e errar boa parte das que possuam um desses conteúdos, a questão de dois conteúdos é anulada.
  3. Obter a imagem de vários cartão-resposta em baixa resolução
  4. Transformar cada imagem em uma matriz de 0 e 1, e depois efetuar as comparações com a matriz resposta e os devidos cálculos para determinar a pontuação do aluno.
  5. Gravar a matrícula e a pontuação do aluno num arquivo

As outras partes não comecei porque vou precisar primeiramente obter a imagem e seus ajustes para poder fazer as operações com as matrizes e com os arquivos.

Link para o comentário
Compartilhar em outros sites

  • Solução

qual é o sistema operacional?

se for Windows,pra ter acesso à um dispositivo em modo de usuario,voce tem que pegar um identificador usando o link simbólico pro objeto dispositivo,e passar isso na função "CreateFile" da biblioteca "windows.h"

se voce nao sabe qual o link simbólico pro dispositivo que voce quer acessar,usa o winobj http://technet.microsoft.com/en-us/sysinternals/bb896657 vai em "GLOBAL??",e ali vão ta todos os links simbólicos e pra qual objeto dispositivo criado pelo driver em questão eles apontam

 

deve existir alguma biblioteca pra facilitar esse tipo de coisa,mas eu nao conheço

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

O computador onde estou fazendo o programa é diferente do que vai rodar o programa. O link simbólico vai ser alterado?

Outra, não entendi como vai ser usada a função CreateFile pra fazer o scaneamento. Pelo que li parece que ela sozinha vão vai fazer o scaneamento,  e parece trabalhar com porta COM, e acho que em outro computador a porta vai ser diferente. Sou iniciante em C, e não consegui fazer o quebra cabeças de tantas funções e classes, até porque nem sei o que é uma classe.

 

Havia usado o octave antes, e nele havia uma função chamada imread, que utiliza o GraphicsMagick para transformar imagens em matrizes de acordo com o tipo de saída (matriz 2d para escala de cinza ou preto-e-branco, e matriz 3d para esquema colorido).

 

Outra possibilidade seria trabalhar diretamente com as imagens preto e branco em resolução de 75 dpi. As impressoras hp dão um nome pra imagem e colocam 0001 e vão adicionando nome sequencial depois dele. O ruim de fazer assim é que o usuário vai ter que ficar apertando toda hora "Adicionar Página", ao menos no caso da minha impressora, onde não há como deixar ela scaneando as folhas sozinhas porque não tem um mecanismo pra ir rodando as folhas, como em impressoras de papelaria.

 

Valeu pela ajuda aí. Vou marcar como resolvido porque sua dica parece ser suficiente pra muita gente que tem essa dúvida e tem mais conhecimentos em C/C++ do que eu

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...