import cv2
import pytesseract
import numpy as np
import pyautogui

# Configuração do caminho (ajuste conforme a sua instalação)
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

def ler_tela():
    # 1. Tira um print da tela (ou de uma área específica)
    # Dica: Substitua (x, y, largura, altura) pela área onde fica o saldo na tela
    screenshot = pyautogui.screenshot(region=(0, 0, 800, 600)) 
    
    # 2. Converte para o formato do OpenCV
    imagem = cv2.cvtColor(np.array(screenshot), cv2.COLOR_RGB2BGR)
    
    # 3. Pré-processamento (Essencial para o OCR funcionar)
    gray = cv2.cvtColor(imagem, cv2.COLOR_BGR2GRAY)
    # Aplica um limiar (Threshold) para deixar o texto bem nítido (preto/branco)
    _, thresh = cv2.threshold(gray, 150, 255, cv2.THRESH_BINARY)
    
    # 4. Leitura do OCR
    # configurado para ler apenas dígitos (psm 7 é bom para linhas únicas)
    config = '--psm 7 -c tessedit_char_whitelist=0123456789'
    texto = pytesseract.image_to_string(thresh, config=config)
    
    print(f"Texto detectado: {texto.strip()}")
    
    # Exibe a imagem que o computador está vendo (ajuda a ajustar a área)
    cv2.imshow('O que o computador esta lendo', thresh)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

if __name__ == "__main__":
    ler_tela()