Como Usar o Tesseract OCR com PHP para Ler Textos de Imagens

Usando Tesseract OCR (local)

Tesseract é uma ferramenta open-source para OCR. Você precisa instalar no servidor e depois chamar via PHP.

Exemplo:

<?php
// Caminho para a imagem
$imagem = 'exemplo.png';

// Chama o Tesseract via shell
$output = shell_exec("tesseract " . escapeshellarg($imagem) . " stdout");

// Exibe o texto extraído
echo nl2br($output);
?>

✅ Observações:

  • stdout faz com que o resultado seja retornado como string.

  • escapeshellarg() previne problemas de segurança.

  • Precisa que o Tesseract esteja instalado no servidor.


2️⃣ Usando biblioteca PHP: thiagoalessio/tesseract_ocr

Existe uma biblioteca PHP que faz wrapper do Tesseract:

composer require thiagoalessio/tesseract_ocr

Exemplo em PHP:

<?php
require 'vendor/autoload.php';

use thiagoalessio\TesseractOCR\TesseractOCR;

$text = (new TesseractOCR('exemplo.png'))
->lang('por') // idioma português
->run();

echo nl2br($text);
?>

✅ Vantagens:

  • Mais seguro e organizado que chamar shell_exec.

  • Permite definir idioma (eng, por, etc.).


3️⃣ Usando APIs de OCR (mais simples)

Se você não quer instalar nada, pode usar APIs externas, como:

  • Google Cloud Vision API

  • OCR.Space

  • Microsoft Azure OCR

Exemplo rápido com OCR.Space:

<?php
$apiKey = 'SUA_CHAVE_API';
$imageFile = 'exemplo.png';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://api.ocr.space/parse/image');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
'apikey' => $apiKey,
'file' => new CURLFile($imageFile),
'language' => 'por'
]);

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);
echo $result['ParsedResults'][0]['ParsedText'];
?>

✅ Vantagens:

  • Não precisa instalar nada.

  • Funciona em qualquer servidor com PHP.

  • Suporta vários idiomas.

Comentários