Python e OCR: Extraindo Texto de Imagens (Guia Windows & Linux)
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
.exedo 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.opengarante 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.