bot-vision-suite


Namebot-vision-suite JSON
Version 1.0.9 PyPI version JSON
download
home_pageNone
SummaryBiblioteca Python avançada para automação de interface gráfica com OCR multi-técnica, detecção de imagens robusta e sistema de backtrack inteligente
upload_time2025-08-14 15:42:34
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords automation gui ocr image-recognition rpa bot desktop-automation
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Bot Vision Suite

![Python](https://img.shields.io/badge/python-3.8+-blue.svg)
![License](https://img.shields.io/badge/license-MIT-green.svg)
![Status](https://img.shields.io/badge/status-published-green.svg)
![PyPI](https://img.shields.io/pypi/v/bot-vision-suite.svg)

**Bot Vision Suite** é uma biblioteca Python avançada para automação de interface gráfica que combina **OCR avançado com múltiplas técnicas de processamento de imagem** e **detecção robusta de imagens com variações de escala** para garantir funcionamento independente da resolução da tela.

## 🚀 **CARACTERÍSTICAS DESTACADAS**

### 🔄 **SISTEMA DE BACKTRACK INTELIGENTE** ⭐

- **Backtrack entre métodos individuais**: Se uma ação falhar, automaticamente reexecuta a anterior
- **Backtrack em listas de tarefas**: Navegação inteligente entre tarefas com retry automático
- **Sessões de backtrack**: Controle manual de sessões para automações complexas
- **Configurável por método**: Ative/desative backtrack para cada ação individualmente

### 🖼️ **DETECÇÃO DE IMAGENS ROBUSTA** ⭐

- **Variações de escala automáticas**: Busca imagens em diferentes tamanhos (0.8x a 1.2x)
- **Independência de resolução**: Funciona em qualquer resolução de tela
- **Parâmetro `specific`**:
  - `specific=True`: Busca apenas na região definida (mais rápido)
  - `specific=False`: Busca na tela inteira + variações de escala (mais flexível)
- **Múltiplas tentativas**: Sistema de retry com ajuste automático de confiança

### 🔍 **OCR AVANÇADO COM MÚLTIPLAS TÉCNICAS** ⭐

- **28+ técnicas de pré-processamento** otimizadas para diferentes tipos de texto
- **Processamento HSV**: Melhora detecção em fundos coloridos (62% confiança)
- **Thresholding adaptativo**: Ideal para texto em fundos variados
- **Processamento LAB**: Equalização de luminosidade para melhor contraste
- **Máscaras de cor**: Detecção específica em fundos rosa, cinza, etc.
- **Combinações otimizadas**: Mescla das melhores técnicas para máxima precisão

## 📦 **INSTALAÇÃO**

```bash
pip install bot-vision-suite
```

### **Pré-requisitos - Tesseract OCR**

A biblioteca detecta automaticamente o Tesseract OCR. Se não estiver instalado:

**Windows:**

```bash
# Baixe de: https://github.com/UB-Mannheim/tesseract/wiki
# Instale em: C:\Program Files\Tesseract-OCR\
# Adicione ao PATH do sistema
```

**Linux:**

```bash
sudo apt-get install tesseract-ocr
```

**macOS:**

```bash
brew install tesseract
```

## 🎯 **USO RÁPIDO**

### **Exemplo Básico com Backtrack**

```python
from bot_vision import BotVision

bot = BotVision()

# Backtrack automático entre métodos
success1 = bot.click_image('button1.png', backtrack=True)
success2 = bot.click_text('Save', backtrack=True)      # Se falhar, volta pro button1
success3 = bot.click_text('Confirm', backtrack=True)   # Se falhar, volta pro Save
```

### **Sessão de Backtrack Manual**

```python
bot = BotVision()

# Inicia sessão de backtrack
bot.start_task_session()

bot.click_image('button1.png', backtrack=True)
bot.click_text('agent', backtrack=True)
bot.click_text('Claude Sonnet 4', backtrack=True)

# Finaliza e mostra estatísticas
successful, total = bot.end_task_session()
print(f"Sucesso: {successful}/{total}")
```

## 🔧 **FUNCIONALIDADES COMPLETAS**

### **1. DETECÇÃO DE IMAGENS COM VARIAÇÕES DE ESCALA**

```python
# Busca imagem com variações de tamanho (independente da resolução)
success = bot.click_image('button.png',
                         region=(100, 100, 200, 50),
                         confidence=0.9,
                         specific=False,        # False = permite buscar na tela inteira
                         backtrack=True,        # Volta para a tarefa anterior
                         max_attempts=3)

# Parâmetros explicados:
# specific=False: Busca na tela inteira + variações de escala (0.8x a 1.2x)
# specific=True:  Busca apenas na região definida (mais rápido)
# backtrack=True: Se falhar, reexecuta ação anterior automaticamente
```

### **2. OCR AVANÇADO COM FILTROS**

```python
# Busca texto com filtros específicos
success = bot.click_text('Login',
                         region=(50, 50, 300, 100),
                         filter_type='letters',        # 'letters', 'numbers', 'both'
                         occurrence=1,                 # Primeira ocorrência
                         confidence_threshold=75.0,    # 75% de confiança
                         backtrack=True,
                         sendtext='usuario123')        # Digita após clique

# Comandos especiais em sendtext:
# {ctrl}a{del}Novo texto{enter} = Ctrl+A, Delete, digita texto, Enter
```

### **3. IMAGENS RELATIVAS (ANTI-DUPLICAÇÃO)**

```python
# Busca target próximo a uma âncora específica
success = bot.click_relative_image(
    anchor_image='warning_icon.png',    # Imagem âncora (única na tela)
    target_image='ok_button.png',       # Imagem target (pode ter várias)
    max_distance=200,                   # Máximo 200px da âncora
    confidence=0.9,
    backtrack=True
)

# Útil quando há múltiplas opções iguais na tela
# Exemplo: Várias imagens "OK" mas você quer a que está perto do "Warning"
```

### **4. COMANDOS DE TECLADO COMPLETOS**

```python
# 100+ comandos pré-definidos
bot.keyboard_command('Ctrl+S')          # Salvar
bot.keyboard_command('F7')              # Clear Block (Oracle Forms)
bot.keyboard_command('Alt+Tab')         # Trocar janela

# Lista completa disponível:
commands = bot.get_available_keyboard_commands()
print(f"Total de comandos: {len(commands)}")
```

### **5. FUNÇÕES DE CONVENIÊNCIA**

```python
from bot_vision import (find_text, click_text, click_image, click_at,
                        find_relative_image, click_relative_image,
                        click_coordinates, type_text_standalone,
                        keyboard_command_standalone)

# Uso rápido sem instanciar classe
success = click_text("Confirmar", region=(200, 200, 600, 400), backtrack=True)
success = click_image("button.png", confidence=0.9, backtrack=True)
success = click_relative_image("anchor.png", "target.png", backtrack=True)
```

## 📋 **CONFIGURAÇÃO DE TAREFAS AVANÇADA**

### **Formato Completo de Task**

```python
tasks = [
    # 1. Busca de imagem com variações de escala
    {
        'image': 'button.png',
        'region': (100, 100, 200, 50),
        'confidence': 0.9,
        'specific': False,              # False = permite variações de escala
        'backtrack': True,              # Retry automático
        'delay': 1,
        'mouse_button': 'left'          # 'left', 'right', 'double', 'move_to'
    },

    # 2. Busca de texto OCR avançado
    {
        'text': 'Login',
        'region': (50, 50, 300, 100),
        'occurrence': 1,                # Primeira ocorrência
        'char_type': 'letters',         # Filtro de caracteres
        'backtrack': True,              # Retry automático
        'delay': 0.5,
        'sendtext': 'usuario123'        # Digita após clique
    },

    # 3. Imagem relativa (âncora + target)
    {
        'type': 'relative_image',
        'anchor_image': 'warning_icon.png',    # Imagem âncora única
        'target_image': 'ok_button.png',       # Imagem target próxima
        'max_distance': 200,                   # Distância máxima em pixels
        'confidence': 0.9,
        'target_region': (0, 0, 800, 600),    # Região para buscar target (opcional)
        'specific': True,
        'backtrack': True,
        'delay': 1
    },

    # 4. Clique em coordenadas específicas
    {
        'type': 'click',
        'x': 500,                              # Coordenada X
        'y': 300,                              # Coordenada Y
        'mouse_button': 'right',               # 'left', 'right', 'double', 'move_to'
        'delay': 0.5,
        'backtrack': False
    },

    # 5. Digitação direta de texto
    {
        'type': 'type_text',
        'text': 'Hello World!',               # Texto a digitar
        'interval': 0.05,                     # Intervalo entre caracteres
        'delay': 1
    },

    # 6. Comando de teclado
    {
        'type': 'keyboard_command',
        'command': 'Ctrl+S',                  # Comando a executar
        'delay': 1
    }
]

# Execução simples
from bot_vision import execute_tasks
execute_tasks(tasks)

# Execução avançada com controle
bot = BotVision()
resultados = bot.execute_tasks(tasks)
```

## ⚙️ **CONFIGURAÇÃO AVANÇADA**

### **Configuração Personalizada**

```python
from bot_vision import BotVision

# Configuração completa
config = {
    "confidence_threshold": 80.0,        # Limiar OCR padrão (75-95)
    "tesseract_lang": "por",             # Idioma: 'eng', 'por', 'spa'
    "tesseract_path": r"C:\Program Files\Tesseract-OCR\tesseract.exe",
    "tessdata_path": r"C:\Program Files\Tesseract-OCR\tessdata",
    "preprocessing_enabled": True,        # Melhora OCR (recomendado)
    "retry_attempts": 5,                 # Tentativas padrão
    "default_delay": 1.5,               # Delay padrão entre ações
    "show_overlay": False,               # Desabilita overlay vermelho globalmente
    "screenshot_delay": 0.1              # Delay para captura de tela
}

bot = BotVision(config=config)
```

### **Parâmetros de Métodos Completos**

```python
# click_image com todos os parâmetros
success = bot.click_image('button.png',
                         region=(100, 100, 200, 50),      # x, y, width, height
                         confidence=0.9,                   # 0.0 a 1.0 (90% precisão)
                         delay=1,                          # Pausa 1 seg após clique
                         mouse_button='left',              # 'left', 'right', 'double', 'move_to'
                         backtrack=True,                   # Retry inteligente
                         specific=False,                   # False = permite variações de escala
                         max_attempts=3,                   # Máximo 3 tentativas
                         sendtext=None,                    # Texto para digitar depois
                         show_overlay=True)                # Exibe marcação vermelha

# click_text com todos os parâmetros
success = bot.click_text('Login',
                         region=(50, 50, 300, 100),       # x, y, width, height
                         filter_type='letters',            # 'letters', 'numbers', 'both'
                         delay=1,                          # Pausa após o clique
                         mouse_button='left',              # Tipo de clique
                         occurrence=1,                     # Qual ocorrência clicar
                         backtrack=True,                   # Retry inteligente
                         max_attempts=3,                   # Máximo de tentativas
                         sendtext='usuario123',            # Texto para digitar após clique
                         confidence_threshold=75.0)        # Precisão OCR (75%)
```

## 🔍 **TÉCNICAS DE PROCESSAMENTO DE IMAGEM**

### **28+ Técnicas Implementadas**

```python
from bot_vision import ImageProcessor
from PIL import Image

# Carregue imagem
img = Image.open('documento.png')

# Processe para OCR com todas as técnicas
processor = ImageProcessor(methods='all')
processed_images = processor.preprocess_for_ocr(img)

print(f"Geradas {len(processed_images)} variações para OCR")

# Técnicas principais:
# 1. HSV Enhancement (62% confiança) - Melhor para números em caixas coloridas
# 2. Dark Background (59% confiança) - Texto claro em fundo escuro
# 3. Channel Processing (57% confiança) - Processamento de canais RGB
# 4. Contrast Sharpening (41% confiança) - Alta nitidez e contraste
# 5. Adaptive Threshold - Thresholding adaptativo para fundos variados
# 6. Color Masking - Máscaras específicas para fundos rosa, cinza
# 7. LAB Enhancement - Equalização de luminosidade
# 8. Combinations - Mescla das melhores técnicas
```

### **OCR com Múltiplas Técnicas**

```python
from bot_vision import OCREngine
from PIL import Image

# Carregue uma imagem
img = Image.open('screenshot.png')

# Initialize OCR engine
ocr = OCREngine()

# Extraia todo o texto com todas as técnicas
results = ocr.extract_all_text(img, filter_type='numbers')

for result in results:
    print(f"Texto: {result.text}, Confiança: {result.confidence}")
```

## 🎨 **EXEMPLOS AVANÇADOS**

### **Automação Completa com Backtrack**

```python
from bot_vision import BotVision
import calendar
from datetime import datetime

# Configuração customizada
config = {
    "confidence_threshold": 80.0,
    "retry_attempts": 5,
    "overlay_color": "blue",
    "preprocessing_enabled": True
}

bot = BotVision(config=config)

# Variáveis dinâmicas
primeiro_dia = str(1)
ultimo_dia = str(calendar.monthrange(datetime.now().year, datetime.now().month)[1])

# Tasks complexas com backtrack
tasks = [
    {
        'text': 'Data Inicial',
        'region': (100, 100, 300, 200),
        'char_type': 'letters',
        'sendtext': f'{primeiro_dia}/01/{datetime.now().year}',
        'delay': 1,
        'backtrack': True
    },
    {
        'text': 'Data Final',
        'region': (100, 250, 300, 200),
        'char_type': 'letters',
        'sendtext': f'{ultimo_dia}/12/{datetime.now().year}',
        'delay': 1,
        'backtrack': True
    },
    {
        'image': 'processar.png',
        'confidence': 0.8,
        'specific': False,        # Permite variações de escala
        'delay': 3,
        'backtrack': True
    }
]

# Execute com backtrack automático
bot.execute_tasks(tasks)
```

### **Hover e Navegação Avançada**

```python
# Apenas mover o mouse para elementos (hover)
success = bot.click_text("Menu", mouse_button="move_to", delay=0.5)
success = bot.click_image("button.png", mouse_button="move_to", delay=1.0)
success = bot.click_coordinates(100, 200, mouse_button="move_to", delay=0.5)

# Tasks com hover
hover_tasks = [
    {
        'text': 'Tooltip trigger',
        'mouse_button': 'move_to',  # Apenas posiciona o mouse
        'delay': 2.0                # Espera para tooltip aparecer
    },
    {
        'text': 'Click here',       # Agora clica em outro elemento
        'mouse_button': 'left',
        'delay': 1.0,
        'backtrack': True
    }
]
```

## 🔧 **DESENVOLVIMENTO**

### **Estrutura do Projeto**

```
bot-vision-suite/
├── bot_vision/
│   ├── core/                    # Módulos principais
│   │   ├── image_processing.py  # 28+ técnicas de processamento
│   │   ├── ocr_engine.py        # Engine OCR avançado
│   │   ├── relative_image.py    # Detecção de imagens relativas
│   │   ├── keyboard_commands.py # 100+ comandos de teclado
│   │   ├── task_executor.py     # Executor com backtrack
│   │   └── overlay.py           # Overlay visual
│   ├── utils/                   # Utilitários
│   └── exceptions.py            # Exceções customizadas
├── tests/                       # Testes automatizados
├── docs/                        # Documentação
└── examples/                    # Exemplos de uso
```

### **Executar Testes**

```bash
pip install bot-vision-suite[dev]
pytest tests/
```

## 🤝 **Contribuindo**

1. Fork o projeto
2. Crie uma branch (`git checkout -b feature/nova-funcionalidade`)
3. Commit suas mudanças (`git commit -am 'Adiciona nova funcionalidade'`)
4. Push para a branch (`git push origin feature/nova-funcionalidade`)
5. Abra um Pull Request

## 📄 **Licença**

Este projeto está licenciado sob a Licença MIT - veja o arquivo [LICENSE](LICENSE) para detalhes.

## 🆘 **Suporte**

- **Repo**: [Repositorio Completa](https://github.com/matheuszwilk/bot-vision-suite)
- **Issues**: [GitHub Issues](https://github.com/matheuszwilk/bot-vision-suite/issues)
- **Exemplos**: [Pasta de Exemplos](examples/)

## 🙏 **Agradecimentos**

- [Tesseract OCR](https://github.com/tesseract-ocr/tesseract) pela engine de OCR
- [PyAutoGUI](https://github.com/asweigart/pyautogui) pela automação de interface
- [OpenCV](https://opencv.org/) pelo processamento de imagem
- [Pillow](https://python-pillow.org/) pela manipulação de imagens

---

**Bot Vision Suite** - Automatize sua interface gráfica com **precisão máxima** e **robustez total**! 🤖✨

### **🎯 DESTAQUES FINAIS**

✅ **Sistema de Backtrack Inteligente** - Retry automático entre ações  
✅ **Variações de Escala Automáticas** - Funciona em qualquer resolução  
✅ **28+ Técnicas de Processamento de Imagem** - OCR com máxima precisão  
✅ **Detecção de Imagens Relativas** - Anti-duplicação inteligente  
✅ **100+ Comandos de Teclado** - Suporte completo a Oracle Forms  
✅ **Configuração Flexível** - Adaptável a qualquer cenário  
✅ **Multiplataforma** - Windows, Linux e macOS

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "bot-vision-suite",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "automation, gui, ocr, image-recognition, rpa, bot, desktop-automation",
    "author": null,
    "author_email": "Automation Suite Developer <matheuszwilkdev@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/5e/05/2723c2b52895c1db96a9499aab1a4b343f04c6f811ce2c739bfd4e2f719d/bot_vision_suite-1.0.9.tar.gz",
    "platform": null,
    "description": "# Bot Vision Suite\r\n\r\n![Python](https://img.shields.io/badge/python-3.8+-blue.svg)\r\n![License](https://img.shields.io/badge/license-MIT-green.svg)\r\n![Status](https://img.shields.io/badge/status-published-green.svg)\r\n![PyPI](https://img.shields.io/pypi/v/bot-vision-suite.svg)\r\n\r\n**Bot Vision Suite** \u00e9 uma biblioteca Python avan\u00e7ada para automa\u00e7\u00e3o de interface gr\u00e1fica que combina **OCR avan\u00e7ado com m\u00faltiplas t\u00e9cnicas de processamento de imagem** e **detec\u00e7\u00e3o robusta de imagens com varia\u00e7\u00f5es de escala** para garantir funcionamento independente da resolu\u00e7\u00e3o da tela.\r\n\r\n## \ud83d\ude80 **CARACTER\u00cdSTICAS DESTACADAS**\r\n\r\n### \ud83d\udd04 **SISTEMA DE BACKTRACK INTELIGENTE** \u2b50\r\n\r\n- **Backtrack entre m\u00e9todos individuais**: Se uma a\u00e7\u00e3o falhar, automaticamente reexecuta a anterior\r\n- **Backtrack em listas de tarefas**: Navega\u00e7\u00e3o inteligente entre tarefas com retry autom\u00e1tico\r\n- **Sess\u00f5es de backtrack**: Controle manual de sess\u00f5es para automa\u00e7\u00f5es complexas\r\n- **Configur\u00e1vel por m\u00e9todo**: Ative/desative backtrack para cada a\u00e7\u00e3o individualmente\r\n\r\n### \ud83d\uddbc\ufe0f **DETEC\u00c7\u00c3O DE IMAGENS ROBUSTA** \u2b50\r\n\r\n- **Varia\u00e7\u00f5es de escala autom\u00e1ticas**: Busca imagens em diferentes tamanhos (0.8x a 1.2x)\r\n- **Independ\u00eancia de resolu\u00e7\u00e3o**: Funciona em qualquer resolu\u00e7\u00e3o de tela\r\n- **Par\u00e2metro `specific`**:\r\n  - `specific=True`: Busca apenas na regi\u00e3o definida (mais r\u00e1pido)\r\n  - `specific=False`: Busca na tela inteira + varia\u00e7\u00f5es de escala (mais flex\u00edvel)\r\n- **M\u00faltiplas tentativas**: Sistema de retry com ajuste autom\u00e1tico de confian\u00e7a\r\n\r\n### \ud83d\udd0d **OCR AVAN\u00c7ADO COM M\u00daLTIPLAS T\u00c9CNICAS** \u2b50\r\n\r\n- **28+ t\u00e9cnicas de pr\u00e9-processamento** otimizadas para diferentes tipos de texto\r\n- **Processamento HSV**: Melhora detec\u00e7\u00e3o em fundos coloridos (62% confian\u00e7a)\r\n- **Thresholding adaptativo**: Ideal para texto em fundos variados\r\n- **Processamento LAB**: Equaliza\u00e7\u00e3o de luminosidade para melhor contraste\r\n- **M\u00e1scaras de cor**: Detec\u00e7\u00e3o espec\u00edfica em fundos rosa, cinza, etc.\r\n- **Combina\u00e7\u00f5es otimizadas**: Mescla das melhores t\u00e9cnicas para m\u00e1xima precis\u00e3o\r\n\r\n## \ud83d\udce6 **INSTALA\u00c7\u00c3O**\r\n\r\n```bash\r\npip install bot-vision-suite\r\n```\r\n\r\n### **Pr\u00e9-requisitos - Tesseract OCR**\r\n\r\nA biblioteca detecta automaticamente o Tesseract OCR. Se n\u00e3o estiver instalado:\r\n\r\n**Windows:**\r\n\r\n```bash\r\n# Baixe de: https://github.com/UB-Mannheim/tesseract/wiki\r\n# Instale em: C:\\Program Files\\Tesseract-OCR\\\r\n# Adicione ao PATH do sistema\r\n```\r\n\r\n**Linux:**\r\n\r\n```bash\r\nsudo apt-get install tesseract-ocr\r\n```\r\n\r\n**macOS:**\r\n\r\n```bash\r\nbrew install tesseract\r\n```\r\n\r\n## \ud83c\udfaf **USO R\u00c1PIDO**\r\n\r\n### **Exemplo B\u00e1sico com Backtrack**\r\n\r\n```python\r\nfrom bot_vision import BotVision\r\n\r\nbot = BotVision()\r\n\r\n# Backtrack autom\u00e1tico entre m\u00e9todos\r\nsuccess1 = bot.click_image('button1.png', backtrack=True)\r\nsuccess2 = bot.click_text('Save', backtrack=True)      # Se falhar, volta pro button1\r\nsuccess3 = bot.click_text('Confirm', backtrack=True)   # Se falhar, volta pro Save\r\n```\r\n\r\n### **Sess\u00e3o de Backtrack Manual**\r\n\r\n```python\r\nbot = BotVision()\r\n\r\n# Inicia sess\u00e3o de backtrack\r\nbot.start_task_session()\r\n\r\nbot.click_image('button1.png', backtrack=True)\r\nbot.click_text('agent', backtrack=True)\r\nbot.click_text('Claude Sonnet 4', backtrack=True)\r\n\r\n# Finaliza e mostra estat\u00edsticas\r\nsuccessful, total = bot.end_task_session()\r\nprint(f\"Sucesso: {successful}/{total}\")\r\n```\r\n\r\n## \ud83d\udd27 **FUNCIONALIDADES COMPLETAS**\r\n\r\n### **1. DETEC\u00c7\u00c3O DE IMAGENS COM VARIA\u00c7\u00d5ES DE ESCALA**\r\n\r\n```python\r\n# Busca imagem com varia\u00e7\u00f5es de tamanho (independente da resolu\u00e7\u00e3o)\r\nsuccess = bot.click_image('button.png',\r\n                         region=(100, 100, 200, 50),\r\n                         confidence=0.9,\r\n                         specific=False,        # False = permite buscar na tela inteira\r\n                         backtrack=True,        # Volta para a tarefa anterior\r\n                         max_attempts=3)\r\n\r\n# Par\u00e2metros explicados:\r\n# specific=False: Busca na tela inteira + varia\u00e7\u00f5es de escala (0.8x a 1.2x)\r\n# specific=True:  Busca apenas na regi\u00e3o definida (mais r\u00e1pido)\r\n# backtrack=True: Se falhar, reexecuta a\u00e7\u00e3o anterior automaticamente\r\n```\r\n\r\n### **2. OCR AVAN\u00c7ADO COM FILTROS**\r\n\r\n```python\r\n# Busca texto com filtros espec\u00edficos\r\nsuccess = bot.click_text('Login',\r\n                         region=(50, 50, 300, 100),\r\n                         filter_type='letters',        # 'letters', 'numbers', 'both'\r\n                         occurrence=1,                 # Primeira ocorr\u00eancia\r\n                         confidence_threshold=75.0,    # 75% de confian\u00e7a\r\n                         backtrack=True,\r\n                         sendtext='usuario123')        # Digita ap\u00f3s clique\r\n\r\n# Comandos especiais em sendtext:\r\n# {ctrl}a{del}Novo texto{enter} = Ctrl+A, Delete, digita texto, Enter\r\n```\r\n\r\n### **3. IMAGENS RELATIVAS (ANTI-DUPLICA\u00c7\u00c3O)**\r\n\r\n```python\r\n# Busca target pr\u00f3ximo a uma \u00e2ncora espec\u00edfica\r\nsuccess = bot.click_relative_image(\r\n    anchor_image='warning_icon.png',    # Imagem \u00e2ncora (\u00fanica na tela)\r\n    target_image='ok_button.png',       # Imagem target (pode ter v\u00e1rias)\r\n    max_distance=200,                   # M\u00e1ximo 200px da \u00e2ncora\r\n    confidence=0.9,\r\n    backtrack=True\r\n)\r\n\r\n# \u00datil quando h\u00e1 m\u00faltiplas op\u00e7\u00f5es iguais na tela\r\n# Exemplo: V\u00e1rias imagens \"OK\" mas voc\u00ea quer a que est\u00e1 perto do \"Warning\"\r\n```\r\n\r\n### **4. COMANDOS DE TECLADO COMPLETOS**\r\n\r\n```python\r\n# 100+ comandos pr\u00e9-definidos\r\nbot.keyboard_command('Ctrl+S')          # Salvar\r\nbot.keyboard_command('F7')              # Clear Block (Oracle Forms)\r\nbot.keyboard_command('Alt+Tab')         # Trocar janela\r\n\r\n# Lista completa dispon\u00edvel:\r\ncommands = bot.get_available_keyboard_commands()\r\nprint(f\"Total de comandos: {len(commands)}\")\r\n```\r\n\r\n### **5. FUN\u00c7\u00d5ES DE CONVENI\u00caNCIA**\r\n\r\n```python\r\nfrom bot_vision import (find_text, click_text, click_image, click_at,\r\n                        find_relative_image, click_relative_image,\r\n                        click_coordinates, type_text_standalone,\r\n                        keyboard_command_standalone)\r\n\r\n# Uso r\u00e1pido sem instanciar classe\r\nsuccess = click_text(\"Confirmar\", region=(200, 200, 600, 400), backtrack=True)\r\nsuccess = click_image(\"button.png\", confidence=0.9, backtrack=True)\r\nsuccess = click_relative_image(\"anchor.png\", \"target.png\", backtrack=True)\r\n```\r\n\r\n## \ud83d\udccb **CONFIGURA\u00c7\u00c3O DE TAREFAS AVAN\u00c7ADA**\r\n\r\n### **Formato Completo de Task**\r\n\r\n```python\r\ntasks = [\r\n    # 1. Busca de imagem com varia\u00e7\u00f5es de escala\r\n    {\r\n        'image': 'button.png',\r\n        'region': (100, 100, 200, 50),\r\n        'confidence': 0.9,\r\n        'specific': False,              # False = permite varia\u00e7\u00f5es de escala\r\n        'backtrack': True,              # Retry autom\u00e1tico\r\n        'delay': 1,\r\n        'mouse_button': 'left'          # 'left', 'right', 'double', 'move_to'\r\n    },\r\n\r\n    # 2. Busca de texto OCR avan\u00e7ado\r\n    {\r\n        'text': 'Login',\r\n        'region': (50, 50, 300, 100),\r\n        'occurrence': 1,                # Primeira ocorr\u00eancia\r\n        'char_type': 'letters',         # Filtro de caracteres\r\n        'backtrack': True,              # Retry autom\u00e1tico\r\n        'delay': 0.5,\r\n        'sendtext': 'usuario123'        # Digita ap\u00f3s clique\r\n    },\r\n\r\n    # 3. Imagem relativa (\u00e2ncora + target)\r\n    {\r\n        'type': 'relative_image',\r\n        'anchor_image': 'warning_icon.png',    # Imagem \u00e2ncora \u00fanica\r\n        'target_image': 'ok_button.png',       # Imagem target pr\u00f3xima\r\n        'max_distance': 200,                   # Dist\u00e2ncia m\u00e1xima em pixels\r\n        'confidence': 0.9,\r\n        'target_region': (0, 0, 800, 600),    # Regi\u00e3o para buscar target (opcional)\r\n        'specific': True,\r\n        'backtrack': True,\r\n        'delay': 1\r\n    },\r\n\r\n    # 4. Clique em coordenadas espec\u00edficas\r\n    {\r\n        'type': 'click',\r\n        'x': 500,                              # Coordenada X\r\n        'y': 300,                              # Coordenada Y\r\n        'mouse_button': 'right',               # 'left', 'right', 'double', 'move_to'\r\n        'delay': 0.5,\r\n        'backtrack': False\r\n    },\r\n\r\n    # 5. Digita\u00e7\u00e3o direta de texto\r\n    {\r\n        'type': 'type_text',\r\n        'text': 'Hello World!',               # Texto a digitar\r\n        'interval': 0.05,                     # Intervalo entre caracteres\r\n        'delay': 1\r\n    },\r\n\r\n    # 6. Comando de teclado\r\n    {\r\n        'type': 'keyboard_command',\r\n        'command': 'Ctrl+S',                  # Comando a executar\r\n        'delay': 1\r\n    }\r\n]\r\n\r\n# Execu\u00e7\u00e3o simples\r\nfrom bot_vision import execute_tasks\r\nexecute_tasks(tasks)\r\n\r\n# Execu\u00e7\u00e3o avan\u00e7ada com controle\r\nbot = BotVision()\r\nresultados = bot.execute_tasks(tasks)\r\n```\r\n\r\n## \u2699\ufe0f **CONFIGURA\u00c7\u00c3O AVAN\u00c7ADA**\r\n\r\n### **Configura\u00e7\u00e3o Personalizada**\r\n\r\n```python\r\nfrom bot_vision import BotVision\r\n\r\n# Configura\u00e7\u00e3o completa\r\nconfig = {\r\n    \"confidence_threshold\": 80.0,        # Limiar OCR padr\u00e3o (75-95)\r\n    \"tesseract_lang\": \"por\",             # Idioma: 'eng', 'por', 'spa'\r\n    \"tesseract_path\": r\"C:\\Program Files\\Tesseract-OCR\\tesseract.exe\",\r\n    \"tessdata_path\": r\"C:\\Program Files\\Tesseract-OCR\\tessdata\",\r\n    \"preprocessing_enabled\": True,        # Melhora OCR (recomendado)\r\n    \"retry_attempts\": 5,                 # Tentativas padr\u00e3o\r\n    \"default_delay\": 1.5,               # Delay padr\u00e3o entre a\u00e7\u00f5es\r\n    \"show_overlay\": False,               # Desabilita overlay vermelho globalmente\r\n    \"screenshot_delay\": 0.1              # Delay para captura de tela\r\n}\r\n\r\nbot = BotVision(config=config)\r\n```\r\n\r\n### **Par\u00e2metros de M\u00e9todos Completos**\r\n\r\n```python\r\n# click_image com todos os par\u00e2metros\r\nsuccess = bot.click_image('button.png',\r\n                         region=(100, 100, 200, 50),      # x, y, width, height\r\n                         confidence=0.9,                   # 0.0 a 1.0 (90% precis\u00e3o)\r\n                         delay=1,                          # Pausa 1 seg ap\u00f3s clique\r\n                         mouse_button='left',              # 'left', 'right', 'double', 'move_to'\r\n                         backtrack=True,                   # Retry inteligente\r\n                         specific=False,                   # False = permite varia\u00e7\u00f5es de escala\r\n                         max_attempts=3,                   # M\u00e1ximo 3 tentativas\r\n                         sendtext=None,                    # Texto para digitar depois\r\n                         show_overlay=True)                # Exibe marca\u00e7\u00e3o vermelha\r\n\r\n# click_text com todos os par\u00e2metros\r\nsuccess = bot.click_text('Login',\r\n                         region=(50, 50, 300, 100),       # x, y, width, height\r\n                         filter_type='letters',            # 'letters', 'numbers', 'both'\r\n                         delay=1,                          # Pausa ap\u00f3s o clique\r\n                         mouse_button='left',              # Tipo de clique\r\n                         occurrence=1,                     # Qual ocorr\u00eancia clicar\r\n                         backtrack=True,                   # Retry inteligente\r\n                         max_attempts=3,                   # M\u00e1ximo de tentativas\r\n                         sendtext='usuario123',            # Texto para digitar ap\u00f3s clique\r\n                         confidence_threshold=75.0)        # Precis\u00e3o OCR (75%)\r\n```\r\n\r\n## \ud83d\udd0d **T\u00c9CNICAS DE PROCESSAMENTO DE IMAGEM**\r\n\r\n### **28+ T\u00e9cnicas Implementadas**\r\n\r\n```python\r\nfrom bot_vision import ImageProcessor\r\nfrom PIL import Image\r\n\r\n# Carregue imagem\r\nimg = Image.open('documento.png')\r\n\r\n# Processe para OCR com todas as t\u00e9cnicas\r\nprocessor = ImageProcessor(methods='all')\r\nprocessed_images = processor.preprocess_for_ocr(img)\r\n\r\nprint(f\"Geradas {len(processed_images)} varia\u00e7\u00f5es para OCR\")\r\n\r\n# T\u00e9cnicas principais:\r\n# 1. HSV Enhancement (62% confian\u00e7a) - Melhor para n\u00fameros em caixas coloridas\r\n# 2. Dark Background (59% confian\u00e7a) - Texto claro em fundo escuro\r\n# 3. Channel Processing (57% confian\u00e7a) - Processamento de canais RGB\r\n# 4. Contrast Sharpening (41% confian\u00e7a) - Alta nitidez e contraste\r\n# 5. Adaptive Threshold - Thresholding adaptativo para fundos variados\r\n# 6. Color Masking - M\u00e1scaras espec\u00edficas para fundos rosa, cinza\r\n# 7. LAB Enhancement - Equaliza\u00e7\u00e3o de luminosidade\r\n# 8. Combinations - Mescla das melhores t\u00e9cnicas\r\n```\r\n\r\n### **OCR com M\u00faltiplas T\u00e9cnicas**\r\n\r\n```python\r\nfrom bot_vision import OCREngine\r\nfrom PIL import Image\r\n\r\n# Carregue uma imagem\r\nimg = Image.open('screenshot.png')\r\n\r\n# Initialize OCR engine\r\nocr = OCREngine()\r\n\r\n# Extraia todo o texto com todas as t\u00e9cnicas\r\nresults = ocr.extract_all_text(img, filter_type='numbers')\r\n\r\nfor result in results:\r\n    print(f\"Texto: {result.text}, Confian\u00e7a: {result.confidence}\")\r\n```\r\n\r\n## \ud83c\udfa8 **EXEMPLOS AVAN\u00c7ADOS**\r\n\r\n### **Automa\u00e7\u00e3o Completa com Backtrack**\r\n\r\n```python\r\nfrom bot_vision import BotVision\r\nimport calendar\r\nfrom datetime import datetime\r\n\r\n# Configura\u00e7\u00e3o customizada\r\nconfig = {\r\n    \"confidence_threshold\": 80.0,\r\n    \"retry_attempts\": 5,\r\n    \"overlay_color\": \"blue\",\r\n    \"preprocessing_enabled\": True\r\n}\r\n\r\nbot = BotVision(config=config)\r\n\r\n# Vari\u00e1veis din\u00e2micas\r\nprimeiro_dia = str(1)\r\nultimo_dia = str(calendar.monthrange(datetime.now().year, datetime.now().month)[1])\r\n\r\n# Tasks complexas com backtrack\r\ntasks = [\r\n    {\r\n        'text': 'Data Inicial',\r\n        'region': (100, 100, 300, 200),\r\n        'char_type': 'letters',\r\n        'sendtext': f'{primeiro_dia}/01/{datetime.now().year}',\r\n        'delay': 1,\r\n        'backtrack': True\r\n    },\r\n    {\r\n        'text': 'Data Final',\r\n        'region': (100, 250, 300, 200),\r\n        'char_type': 'letters',\r\n        'sendtext': f'{ultimo_dia}/12/{datetime.now().year}',\r\n        'delay': 1,\r\n        'backtrack': True\r\n    },\r\n    {\r\n        'image': 'processar.png',\r\n        'confidence': 0.8,\r\n        'specific': False,        # Permite varia\u00e7\u00f5es de escala\r\n        'delay': 3,\r\n        'backtrack': True\r\n    }\r\n]\r\n\r\n# Execute com backtrack autom\u00e1tico\r\nbot.execute_tasks(tasks)\r\n```\r\n\r\n### **Hover e Navega\u00e7\u00e3o Avan\u00e7ada**\r\n\r\n```python\r\n# Apenas mover o mouse para elementos (hover)\r\nsuccess = bot.click_text(\"Menu\", mouse_button=\"move_to\", delay=0.5)\r\nsuccess = bot.click_image(\"button.png\", mouse_button=\"move_to\", delay=1.0)\r\nsuccess = bot.click_coordinates(100, 200, mouse_button=\"move_to\", delay=0.5)\r\n\r\n# Tasks com hover\r\nhover_tasks = [\r\n    {\r\n        'text': 'Tooltip trigger',\r\n        'mouse_button': 'move_to',  # Apenas posiciona o mouse\r\n        'delay': 2.0                # Espera para tooltip aparecer\r\n    },\r\n    {\r\n        'text': 'Click here',       # Agora clica em outro elemento\r\n        'mouse_button': 'left',\r\n        'delay': 1.0,\r\n        'backtrack': True\r\n    }\r\n]\r\n```\r\n\r\n## \ud83d\udd27 **DESENVOLVIMENTO**\r\n\r\n### **Estrutura do Projeto**\r\n\r\n```\r\nbot-vision-suite/\r\n\u251c\u2500\u2500 bot_vision/\r\n\u2502   \u251c\u2500\u2500 core/                    # M\u00f3dulos principais\r\n\u2502   \u2502   \u251c\u2500\u2500 image_processing.py  # 28+ t\u00e9cnicas de processamento\r\n\u2502   \u2502   \u251c\u2500\u2500 ocr_engine.py        # Engine OCR avan\u00e7ado\r\n\u2502   \u2502   \u251c\u2500\u2500 relative_image.py    # Detec\u00e7\u00e3o de imagens relativas\r\n\u2502   \u2502   \u251c\u2500\u2500 keyboard_commands.py # 100+ comandos de teclado\r\n\u2502   \u2502   \u251c\u2500\u2500 task_executor.py     # Executor com backtrack\r\n\u2502   \u2502   \u2514\u2500\u2500 overlay.py           # Overlay visual\r\n\u2502   \u251c\u2500\u2500 utils/                   # Utilit\u00e1rios\r\n\u2502   \u2514\u2500\u2500 exceptions.py            # Exce\u00e7\u00f5es customizadas\r\n\u251c\u2500\u2500 tests/                       # Testes automatizados\r\n\u251c\u2500\u2500 docs/                        # Documenta\u00e7\u00e3o\r\n\u2514\u2500\u2500 examples/                    # Exemplos de uso\r\n```\r\n\r\n### **Executar Testes**\r\n\r\n```bash\r\npip install bot-vision-suite[dev]\r\npytest tests/\r\n```\r\n\r\n## \ud83e\udd1d **Contribuindo**\r\n\r\n1. Fork o projeto\r\n2. Crie uma branch (`git checkout -b feature/nova-funcionalidade`)\r\n3. Commit suas mudan\u00e7as (`git commit -am 'Adiciona nova funcionalidade'`)\r\n4. Push para a branch (`git push origin feature/nova-funcionalidade`)\r\n5. Abra um Pull Request\r\n\r\n## \ud83d\udcc4 **Licen\u00e7a**\r\n\r\nEste projeto est\u00e1 licenciado sob a Licen\u00e7a MIT - veja o arquivo [LICENSE](LICENSE) para detalhes.\r\n\r\n## \ud83c\udd98 **Suporte**\r\n\r\n- **Repo**: [Repositorio Completa](https://github.com/matheuszwilk/bot-vision-suite)\r\n- **Issues**: [GitHub Issues](https://github.com/matheuszwilk/bot-vision-suite/issues)\r\n- **Exemplos**: [Pasta de Exemplos](examples/)\r\n\r\n## \ud83d\ude4f **Agradecimentos**\r\n\r\n- [Tesseract OCR](https://github.com/tesseract-ocr/tesseract) pela engine de OCR\r\n- [PyAutoGUI](https://github.com/asweigart/pyautogui) pela automa\u00e7\u00e3o de interface\r\n- [OpenCV](https://opencv.org/) pelo processamento de imagem\r\n- [Pillow](https://python-pillow.org/) pela manipula\u00e7\u00e3o de imagens\r\n\r\n---\r\n\r\n**Bot Vision Suite** - Automatize sua interface gr\u00e1fica com **precis\u00e3o m\u00e1xima** e **robustez total**! \ud83e\udd16\u2728\r\n\r\n### **\ud83c\udfaf DESTAQUES FINAIS**\r\n\r\n\u2705 **Sistema de Backtrack Inteligente** - Retry autom\u00e1tico entre a\u00e7\u00f5es  \r\n\u2705 **Varia\u00e7\u00f5es de Escala Autom\u00e1ticas** - Funciona em qualquer resolu\u00e7\u00e3o  \r\n\u2705 **28+ T\u00e9cnicas de Processamento de Imagem** - OCR com m\u00e1xima precis\u00e3o  \r\n\u2705 **Detec\u00e7\u00e3o de Imagens Relativas** - Anti-duplica\u00e7\u00e3o inteligente  \r\n\u2705 **100+ Comandos de Teclado** - Suporte completo a Oracle Forms  \r\n\u2705 **Configura\u00e7\u00e3o Flex\u00edvel** - Adapt\u00e1vel a qualquer cen\u00e1rio  \r\n\u2705 **Multiplataforma** - Windows, Linux e macOS\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Biblioteca Python avan\u00e7ada para automa\u00e7\u00e3o de interface gr\u00e1fica com OCR multi-t\u00e9cnica, detec\u00e7\u00e3o de imagens robusta e sistema de backtrack inteligente",
    "version": "1.0.9",
    "project_urls": {
        "Bug Tracker": "https://github.com/matheuszwilk/bot-vision-suite/issues",
        "Documentation": "https://github.com/matheuszwilk/bot-vision-suite#readme",
        "Homepage": "https://github.com/matheuszwilk/bot-vision-suite",
        "Repository": "https://github.com/matheuszwilk/bot-vision-suite.git"
    },
    "split_keywords": [
        "automation",
        " gui",
        " ocr",
        " image-recognition",
        " rpa",
        " bot",
        " desktop-automation"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "72aa637a0759cbdb20f68dc4d09f789b635ae410261f76b792ce110cab444c4a",
                "md5": "1b2a3d853be114246402dcb467e7405a",
                "sha256": "682b92a1851233046bf35ad5f62eb5cdad02c3df12f58a4859a845496d7d1563"
            },
            "downloads": -1,
            "filename": "bot_vision_suite-1.0.9-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "1b2a3d853be114246402dcb467e7405a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 59936,
            "upload_time": "2025-08-14T15:42:32",
            "upload_time_iso_8601": "2025-08-14T15:42:32.432368Z",
            "url": "https://files.pythonhosted.org/packages/72/aa/637a0759cbdb20f68dc4d09f789b635ae410261f76b792ce110cab444c4a/bot_vision_suite-1.0.9-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5e052723c2b52895c1db96a9499aab1a4b343f04c6f811ce2c739bfd4e2f719d",
                "md5": "24df127818b49e660718c9151ddf8806",
                "sha256": "c7e0a59d1c40b4472489068ceeea9f0e6ac53dfa8c7bff9d81aa8d228a2d52e0"
            },
            "downloads": -1,
            "filename": "bot_vision_suite-1.0.9.tar.gz",
            "has_sig": false,
            "md5_digest": "24df127818b49e660718c9151ddf8806",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 90155,
            "upload_time": "2025-08-14T15:42:34",
            "upload_time_iso_8601": "2025-08-14T15:42:34.297909Z",
            "url": "https://files.pythonhosted.org/packages/5e/05/2723c2b52895c1db96a9499aab1a4b343f04c6f811ce2c739bfd4e2f719d/bot_vision_suite-1.0.9.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-14 15:42:34",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "matheuszwilk",
    "github_project": "bot-vision-suite",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "bot-vision-suite"
}
        
Elapsed time: 0.95201s