De acordo com a documentação, quando o caractere não é reconhecido é imposto a ele o valor "\x{fffd}". :)<br><br><div><span class="gmail_quote">On 6/21/07, <b class="gmail_sendername">Rafael Magalhães</b> <<a href="mailto:rafaelmagalhaes@gmail.com">
rafaelmagalhaes@gmail.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div>André,</div>
<div> </div>
<div>Noiteeee (festa junina é bom mesmo, quem não gosta? heheh),</div>
<div> </div>
<div>Fiz as modificações que você me passou e vou postar aqui as diferenças:</div>
<div> </div>
<div>Da maneira que tinha feito antes:</div>
<div> </div>
<div>____________</div>
<div>Código:</div><span class="q">
<div>
<p>#!/usr/bin/perl -w</p>
<p>use OCR::PerfectCR;<br>use GD;</p>
<p>my $recognizer = OCR::PerfectCR->new;<br>$recognizer->load_charmap_file("charmap");<br>my $image = GD::Image->new("placa.jpg") or die "Can't open example.png: $!";<br>my $string = $recognizer->recognize($image);
<br>$recognizer->save_charmap_file("charmap");</p></div></span>
<div>Retorno:</div>
<div> </div>
<div>Background color at index 21 [240 239 221]<br>Finding bounds starting at 0<br>Character at (0, 0)-(144, 45)<br>Finding bounds starting at 144</div>
<div>____________<br> </div>
<div> </div>
<div>Da maneira que você sugeriu:</div>
<div> </div>
<div>____________</div>
<div>Código:</div>
<div> </div>
<div>
<p>#! /usr/bin/perl -w</p>
<p>use strict; <span class="q"><br>use OCR::PerfectCR;<br>use GD;<br></span>use Data::Dumper;</p>
<p><span class="q">my $recognizer = OCR::PerfectCR->new;<br>$recognizer->load_charmap_file("charmap");<br></span>my $image = GD::Image->new("viewImageMagic.jfif") or die "Can't open
example.png: $!";<span class="q"><br>
my $string = $recognizer->recognize($image);<br></span>print Dumper $string; </p><span class="q">
<p>$recognizer->save_charmap_file("charmap");</p></span></div>
<div> </div>
<div>Retorno:</div>
<div> </div>
<div>Background color at index 21 [240 239 221]<br>Finding bounds starting at 0<br>Character at (0, 0)-(144, 45)<br>Finding bounds starting at 144<br>$VAR1 = "\x{fffd}";</div>
<div>____________</div>
<div> </div>
<div> </div>
<div>O que pode estar dando errado?</div>
<div> </div>
<div>Obrigado pela atenção e tenha otimas festas juninas, julhinhas, agostinas e todos os meses inas!!!! hehehe<br> </div>
<div><span class="gmail_quote">Em 20/06/07, <b class="gmail_sendername">André Garcia Carneiro</b> <<a href="mailto:andre.garcia.carneir@terra.com.br" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
andre.garcia.carneir@terra.com.br</a>> escreveu:</span>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0px 0px 0px 0.8ex; padding-left: 1ex;"><br><br>Eu dei um<br><br>> Boa tarde,<br><br>Taarde!(desculpe, estou no modo de festas juninas, adoro essas coisas) :D
<span class="q"><br><br>> Sou novo na lista, e depois de alguns anos estudando outras linguagens (ASP,<br>> PHP, Java e .NET), encontrei um problema e por incentivo de um amigo que é<br>> membro aqui da lista, resolvi voltar a estudar Perl.
<br><br></span>Sábia decisão<span class="q"><br><br>> Estou fazendo um trabalho na faculdade e o nosso objeto de estudo é uma rede<br>> de estacionamentos que pretende modernizar a entrada e saída de seus<br>> clientes que pagam mensalmente. Basicamente teriamos uma camera posicionada,
<br>> de forma que foque na placa do veículo e quando chegar até a cancela,<br>> registre uma foto e o sistema irá ler o numero da placa e verificar no banco<br>> de dados se o cliente está em dias com as mensalidades, caso ele esteja,
<br>> libera a entrada / saída, caso contrário emite um aviso ao sistema para<br>> lembrar ao cliente sobre o pagamento.<br>><br>> Pensei em desenvolver com Java, existe umas bibliotecas pra isso, mas só<br>> conheço bibliotecas pagas e como é um projeto acadêmico, preciso de algo
<br>> free e que funcione de verdade.<br><br></span>É o que costuma acontecer quando se desenvolve com ASP e .NET...JAVA de vez em quando...<span class="q"><br><br>> Bem, voltei a estudar Perl e instalei o modulo "OCR::PerfectCR", encontrei
<br>> no CPAN. Infelizmente não encontrei muita documentação sobre ele e o máximo<br>> que consegui foi executar o unico exemplo, que pegou a foto da placa que<br>> testei no exemplo, extraiu todos os caracteres e salvou uma imagem com cada
<br>> um dos caracteres.<br>><br>> O que quero é conseguir pegar esse texto e armazenar em uma variável para<br>> que eu possa passar como parametro e checar em meu banco de dados, a<br>> situação daquele veículo.
<br><br></span>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<br>me chamou a atenção foi isso:<br><br>Takes the image (a GD::Image object), and tries to convert it into text. In list context, returns a list of
<br>hashrefs, each having a str key, whose value is the string in the charmap for that image.<br><br>Logo, penso que de alguma forma deve ter um texto em alguma referência para hash que tem a informação que você<br>quer. Sugiro que você use Data::Dumper nessas variáveis para verificar seus valores. Como não tive tempo de
<br>testar o seu código, e mesmo que tivesse, não posso testar isso no meu trabalho, é o que eu posso fazer por<br>você por enquanto, peço que me desculpe.<br><br>O teste seria algo do tipo<br><br><code><br>#! /usr/bin/perl -w
<br><br>use strict; #Não se esqueça disso. Salvará a sua vida, pode acreditar!<span class="q"><br>use OCR::PerfectCR;<br>use GD;<br></span>use Data::Dumper;<span class="q"><br><br>my $recognizer = OCR::PerfectCR->new;
<br>$recognizer->load_charmap_file("charmap");
<br>my $image = GD::Image->new("placa.jpg") or die "Can't open example.png: $!";<br>my $string = $recognizer->recognize($image);<br><br></span>print Dumper $string; # Não sei se é aqui que ele vai jogar o texto, pelo exemplo é o que parece... É bem
<br>provável que você ache sua string aqui. Pela documentação, ele vai criar uma lista de hashrefs, no contexto de<br>lista, pelo que eu entendi...<span class="q"><br><br>$recognizer->save_charmap_file("charmap");
<br><br></span></code>
<br><br>Se alguém testar esse código, por favor poste na lista o resultado, por gentileza. Fiquei curioso se funciona...<br><br><br><br>Cheers!<span class="q"><br><br>> O código abaixo é o que eu usei do exemplo do CPAN:
<br>><br>> ___________________________________________________
<br>> #!/usr/bin/perl -w<br>><br>> use OCR::PerfectCR;<br>> use GD;<br>><br>> my $recognizer = OCR::PerfectCR->new;<br>> $recognizer->load_charmap_file("charmap");<br>> my $image = GD::Image->new("
placa.jpg") or die "Can't open example.png: $!";<br>> my $string = $recognizer->recognize($image);<br>> $recognizer->save_charmap_file("charmap");<br>> ___________________________________________________
<br>><br>> Será que alguem pode me ajudar a resolver este problema? Um exemplo que eu<br>> consiga capturar os caracteres na minha variável?<br>><br>> Fico grato pela atenção de todos,<br>><br>><br>> Atenciosamente,
<br>> Rafael Magalhães<br>><br></span>> E-mail classificado pelo Identificador de Spam Inteligente Terra.<br>> Para alterar a categoria classificada, visite<br>><br><a href="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" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
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</a><br>><br>> Esta mensagem foi verificada pelo E-mail Protegido Terra.
<br>> Scan engine: McAfee VirusScan / Atualizado em 20/06/2007 / Versão: 5.1.00/5057<br>> Proteja o seu e-mail Terra: <a href="http://mail.terra.com.br/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://mail.terra.com.br/</a><br>><br>><br><span class="sg"><br>--<br>André Garcia Carneiro
<br>Developer(Perl/PHP)<br>Member of "São Paulo Perl Mongers" - <a href="http://sao-paulo.pm.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://sao-paulo.pm.org</a><br><br>_______________________________________________
</span><span class="q"><br>Cascavel-pm mailing list<br>
<a href="mailto:Cascavel-pm@pm.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Cascavel-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/cascavel-pm" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br></span></blockquote></div><br>
<br>_______________________________________________<br>Cascavel-pm mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br><a onclick="return top.js.OpenExtLink(window,event,this)" href="http://mail.pm.org/mailman/listinfo/cascavel-pm" target="_blank">
http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br></blockquote></div><br><br clear="all"><br>-- <br>Gabriel Vieira