# Bot Vision Suite




**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\r\n\r\n\r\n\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"
}