Ir para conteúdo
Higor Roberto

Lendo PDF com Tesseract OCR PHP

Recommended Posts

Olá pessoal, bom dia.

Estou usando o tesseract orc para leitura de imagens, ele captura os caracteres da imagem e atribui em uma variável.

Segue meu codigo:

<?php

$file = 'image.png';
if(file_exists($file)){
	require_once ('TesseractOCR.php');
	$tesseract = new TesseractOCR($file);
	$text = $tesseract->recognize();
	echo $text; // Texto da imagem
} else {
	echo ' Não existe';
} 

Com imagens comuns ele funciona perfeitamente, o problema é quando eu tento abrir um arquivo .pdf.

 

Vocês já usaram tesseract e conseguiram ler arquivos .pdf?

Aceito sugestões de outras ferramentas para php.

Obrigado desde já.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usei alguns softwares de OCR em um projeto da UFPR. O Tesseract foi um deles (o melhor na época).

 

O que você pode fazer é converter o PDF em imagem antes de rodar o OCR. A lib ImageMagick faz isso fácil, com o comando convert, no terminal. A lib ImageMagick do PHP também deve ter essa opção, caso não queira rodar o comando direto no terminal com exec()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo, obrigado pela ajuda. Acabei de conseguir com as dicas que vc me forneceu.

Utilizo o S.O ubuntu 14.04.

 

Passos que eu segui:

 

Instalei o ImageMagick com o comando

sudo apt-get install php5-imagick
sudo php5enmod imagick

Segui as dicas de instalação desse site: http://askubuntu.com/questions/560696/having-problems-installing-imagemagick-on-ubuntu-14-04

 

Depois dei um phpinfo() para ver se realmente a biblioteca imagick estava instalado no php e fiz um teste para converter o meu arquivo .pdf para jpg. (Detalhe: no meu caso eu restartei o meu servidor apache2)

<?php

// instantiate Imagick 
$im = new Imagick();

$im->setResolution(300,300);
$im->readimage('TutorialPDF.pdf[0]'); // Numero da pagina do arquivo .pdf 
var_dump($im);
$im->setImageFormat('jpeg');   
$im->writeImage('img.jpg'); // Nome da imagem que será criada
$im->clear(); 
$im->destroy();

Ok! a imagem esta salva na pasta :-)

 

Agora eu usarei o tesseract, instalei com o comando

sudo apt-get install tesseract-orc

Baixei a classe do tesseract https://github.com/thiagoalessio/tesseract-ocr-for-php/tree/master/TesseractOCR

 

E testei com o seguinte código:

<?php

$file = 'img.jpg';
if(file_exists($file)){
	require_once ('TesseractOCR.php');
	$tesseract = new TesseractOCR($file);
	$text = $tesseract->recognize();
	echo $text;
} else {
	echo ' Não existe';
} 

E voilááá rs

 

No meu navegador apareceu todo meu conteúdo que tinha na imagem.

 

Mais uma vez obrigado Beraldo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Higor,

 

Em primeiro lugar obrigado por compartilhar sua experiência.

 

Eu estou tentando usar o Tesseract para reconhecer imagens simples com números e estou tendo problema com reconhecimento de números onde ele reconhece o 6 e o 8 como sendo o 5.

 

Você teve este problema?

 

Se teve sabe como posso resolver?

 

Desde já obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, desculpa star ressuscitando este tópico, mais preciso de uma ajuda urgente. Quero fazer a extração de texto de PDF, no caso farei upload e o texto será extraído, o qual irei gravar no banco. Minha aplicação é em PHP, mas até agora não encontrei nada de OCR que me ajudasse, poderiam me auxiliar com esta questão do Tesseract, É preciso instalar ele pra funcionar ou só baixar a classe e usar como uma qualquer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.