codigo beta

 avatar
unknown
python
22 days ago
2.2 kB
6
Indexable
import logging
from telegram import Update
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext
import cv2
import pytesseract
from io import BytesIO
from PIL import Image

# Configurar el logging para ver detalles de lo que está pasando
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
                    level=logging.INFO)
logger = logging.getLogger(__name__)

# Comando start para verificar que el bot está funcionando
def start(update: Update, context: CallbackContext) -> None:
    update.message.reply_text('¡Hola! Envíame una imagen y extraeré los datos de ella.')

# Función para procesar las imágenes enviadas
def process_image(update: Update, context: CallbackContext) -> None:
    file = update.message.photo[-1].get_file()  # Obtener la imagen de la foto enviada
    file.download('image.jpg')  # Guardar la imagen en el servidor

    # Cargar la imagen con OpenCV
    img = cv2.imread('image.jpg')

    # Convertir la imagen a texto usando Tesseract OCR
    text = pytesseract.image_to_string(img)  # Extraer todo el texto de la imagen

    # Filtrar la información que necesitas (esto es solo un ejemplo, se puede ajustar)
    # Aquí podemos hacer un procesamiento de la imagen para extraer datos específicos
    # Si tienes coordenadas predefinidas o áreas específicas de la imagen, puedes ajustar el código.
    extracted_data = text  # Puedes aplicar más filtros según las coordenadas específicas

    # Enviar el texto extraído de vuelta al grupo
    update.message.reply_text(f'Datos extraídos:\n{extracted_data}')

# Función principal que configura y arranca el bot
def main():
    # Reemplaza 'YOUR_TOKEN' con el token de tu bot de Telegram
    updater = Updater("7502458784:AAGyyR04XSHRYfalw5vbUQkR8ySRDiJpItE", use_context=True)

    dp = updater.dispatcher

    # Comando '/start'
    dp.add_handler(CommandHandler("start", start))

    # Manejar imágenes enviadas al bot
    dp.add_handler(MessageHandler(Filters.photo, process_image))

    # Iniciar el bot
    updater.start_polling()
    updater.idle()

if __name__ == '__main__':
    main()
Leave a Comment