Python e OCR: Extraindo Texto de Imagens (Guia Windows & Linux)

POR CÓDIGO DA HORA • 12 MARÇO 2026

Reconhecimento Óptico de Caracteres (OCR)

O OCR permite transformar fotos de documentos em texto editável. Para isso, utilizamos o motor Tesseract, mantido pela Google.

Procedimento de Instalação

Este projeto exige a instalação do motor no sistema e da biblioteca no Python:

1. Instalação no Windows

  • Baixe o instalador .exe do Tesseract (ex: do repositório UB Mannheim).
  • Após instalar, anote o caminho do executável (geralmente: C:\\Program Files\\Tesseract-OCR\\tesseract.exe).

2. Instalação no Python

pip install pytesseract Pillow

O Código Completo

No Windows, você precisa definir a variável tesseract_cmd para que o script funcione.

import pytesseract
from PIL import Image
import os
import sys

def extrair_texto_imagem(caminho_foto):
    # CONFIGURAÇÃO PARA WINDOWS
    if sys.platform == "win32":
        caminho_tesseract = r'C:\\Program Files\\Tesseract-OCR\\tesseract.exe'
        pytesseract.pytesseract.tesseract_cmd = caminho_tesseract

    try:
        if not os.path.exists(caminho_foto):
            return "Erro: Arquivo não encontrado."

        # Carrega a imagem e processa o OCR
        with Image.open(caminho_foto) as img:
            # lang='por' para português (requer pacote de idioma instalado)
            texto = pytesseract.image_to_string(img, lang='eng')
            return texto.strip()

    except Exception as e:
        return f"Erro no processamento: {e}"

# Exemplo de uso
if __name__ == "__main__":
    resultado = extrair_texto_imagem('doc.png')
    print("--- Texto Extraído ---")
    print(resultado)

Melhorias Aplicadas

  • Compatibilidade Windows: Adicionamos uma verificação automática que define o caminho do executável apenas se o sistema for Windows (win32).
  • Gerenciamento de Contexto: O uso do with Image.open garante que a imagem seja fechada corretamente após a leitura, liberando memória.
  • Dica de Idioma: Explicamos o parâmetro lang='eng' ou 'por', essencial para a precisão do reconhecimento de caracteres especiais.
  • Robustez: O script valida a existência do arquivo antes de iniciar o motor pesado do OCR.