[Cascavel-pm] [Spam] OCR

André Garcia Carneiro andre.garcia.carneir em terra.com.br
Quarta Junho 20 14:50:54 PDT 2007



Eu dei um

> Boa tarde,

Taarde!(desculpe, estou no modo de festas juninas, adoro essas coisas) :D
 
> Sou novo na lista, e depois de alguns anos estudando outras linguagens (ASP,
> PHP, Java e .NET), encontrei um problema e por incentivo de um amigo que é
> membro aqui da lista, resolvi voltar a estudar Perl.

Sábia decisão
 
> Estou fazendo um trabalho na faculdade e o nosso objeto de estudo é uma rede
> de estacionamentos que pretende modernizar a entrada e saída de seus
> clientes que pagam mensalmente. Basicamente teriamos uma camera posicionada,
> de forma que foque na placa do veículo e quando chegar até a cancela,
> registre uma foto e o sistema irá ler o numero da placa e verificar no banco
> de dados se o cliente está em dias com as mensalidades, caso ele esteja,
> libera a entrada / saída, caso contrário emite um aviso ao sistema para
> lembrar ao cliente sobre o pagamento.
>
> Pensei em desenvolver com Java, existe umas bibliotecas pra isso, mas só
> conheço bibliotecas pagas e como é um projeto acadêmico, preciso de algo
> free e que funcione de verdade.

É o que costuma acontecer quando se desenvolve com ASP e .NET...JAVA de vez em quando...
 
> Bem, voltei a estudar Perl e instalei o modulo "OCR::PerfectCR", encontrei
> no CPAN. Infelizmente não encontrei muita documentação sobre ele e o máximo
> que consegui foi executar o unico exemplo, que pegou a foto da placa que
> testei no exemplo, extraiu todos os caracteres e salvou uma imagem com cada
> um dos caracteres.
> 
> O que quero é conseguir pegar esse texto e armazenar em uma variável para
> que eu possa passar como parametro e checar em meu banco de dados, a
> situação daquele veículo.

Hum... não cheguei a testar o código de exemplo que você testou, mas li a documentação disponível, e o que mais
me chamou a atenção foi isso:

Takes the image (a GD::Image object), and tries to convert it into text. In list context, returns a list of
hashrefs, each having a str key, whose value is the string in the charmap for that image. 

Logo, penso que de alguma forma deve ter um texto em alguma referência para hash que tem a informação que você
quer. Sugiro que você use Data::Dumper nessas variáveis para verificar seus valores. Como não tive tempo de
testar o seu código, e mesmo que tivesse, não posso testar isso no meu trabalho, é o que eu posso fazer por
você por enquanto, peço que me desculpe.

O teste seria algo do tipo

<code>
#! /usr/bin/perl -w

use strict; #Não se esqueça disso. Salvará a sua vida, pode acreditar!
use OCR::PerfectCR;
use GD;
use Data::Dumper;

my $recognizer = OCR::PerfectCR->new;
$recognizer->load_charmap_file("charmap");
my $image = GD::Image->new("placa.jpg") or die "Can't open example.png: $!";
my $string = $recognizer->recognize($image);

print Dumper $string; # Não sei se é aqui que ele vai jogar o texto, pelo exemplo é o que parece... É bem
provável que você ache sua string aqui. Pela documentação, ele vai criar uma lista de hashrefs, no contexto de
lista, pelo que eu entendi... 

$recognizer->save_charmap_file("charmap");

</code>

Se alguém testar esse código, por favor poste na lista o resultado, por gentileza. Fiquei curioso se funciona...



Cheers!

> O código abaixo é o que eu usei do exemplo do CPAN:
> 
> ___________________________________________________
> #!/usr/bin/perl -w
> 
> use OCR::PerfectCR;
> use GD;
> 
> my $recognizer = OCR::PerfectCR->new;
> $recognizer->load_charmap_file("charmap");
> my $image = GD::Image->new("placa.jpg") or die "Can't open example.png: $!";
> my $string = $recognizer->recognize($image);
> $recognizer->save_charmap_file("charmap");
> ___________________________________________________
> 
> Será que alguem pode me ajudar a resolver este problema? Um exemplo que eu
> consiga capturar os caracteres na minha variável?
> 
> Fico grato pela atenção de todos,
> 
> 
> Atenciosamente,
> Rafael Magalhães
> 
> E-mail classificado pelo Identificador de Spam Inteligente Terra.
> Para alterar a categoria classificada, visite
>
http://mail.terra.com.br/cgi-bin/imail.cgi?+_u=andre.garcia.carneir&_l=1,1182365641.515645.15733.tacamaca.hst.terra.com.br,8874,20031127114101,20031127114101
> 
> Esta mensagem foi verificada pelo E-mail Protegido Terra.
> Scan engine: McAfee VirusScan / Atualizado em 20/06/2007 / Versão: 5.1.00/5057
> Proteja o seu e-mail Terra: http://mail.terra.com.br/
> 
> 

--
André Garcia Carneiro
Developer(Perl/PHP)
Member of "São Paulo Perl Mongers" - http://sao-paulo.pm.org



Mais detalhes sobre a lista de discussão Cascavel-pm