Controle o mouse do computador utilizando gestos da mão através da webcam.
Este projeto utiliza Visão Computacional em tempo real para capturar landmarks da mão com MediaPipe e traduzir gestos em ações no sistema operacional.
Projeto desenvolvido com foco educacional e demonstração prática de Interação Humano-Computador (HCI).
- 🖱️ Levantar apenas o dedo indicador → Move o mouse
- 👊 Manter o punho fechado por 1 segundo → Fecha o programa
- 🖐️ Rastreamento de até duas mãos
- 🎯 Detecção baseada em geometria dos landmarks
Este projeto demonstra:
- Rastreamento de 21 landmarks da mão
- Cálculo de distância euclidiana entre pontos
- Classificação de gestos baseada em regras geométricas
- Arquitetura modular em Python
- Controle do sistema operacional via automação
hand_control_pc/
│
├── requirements.txt
├── README.md
└── src/
├── main.py # Loop principal e integração
├── hand_tracker.py # Captura e processamento dos landmarks
├── gesture_recognizer.py # Lógica de reconhecimento de gestos
└── gesture_actions.py # Execução das ações no sistema
- HandTracker → Comunicação com MediaPipe
- GestureRecognizer → Interpretação geométrica dos gestos
- GestureActions → Execução das ações (mouse, encerramento)
- main.py → Orquestração do sistema
Essa separação facilita manutenção, escalabilidade e expansão futura.
- Python 3.11
- OpenCV
- MediaPipe
- PyAutoGUI
O MediaPipe retorna 21 landmarks com coordenadas normalizadas:
(x, y, z) ∈ [0, 1]
A lógica de reconhecimento utiliza:
Para verificar se um dedo está levantado:
tip_y < base_y
Para verificar proximidade entre dedos:
dist = √((x1 - x2)² + (y1 - y2)²)
Os gestos são avaliados em ordem para evitar conflitos:
- Punho fechado
- Movimento do mouse
- Outros gestos
git clone https://github.com/SEU_USUARIO/hand_control_pc.git
cd hand_control_pcpip install -r requirements.txtpython src/main.py- Uso de coordenadas normalizadas para independência de resolução
- Threshold ajustável para calibração de distância
- Separação clara entre detecção, reconhecimento e ação
- Estrutura preparada para expansão de novos gestos
- Suavização do movimento do mouse (filtro exponencial)
- Calibração dinâmica baseada no tamanho da mão
- Implementação futura com Machine Learning supervisionado
- Adição de clique por gesto de pinça
- Controle de scroll por gesto
Demonstrar aplicação prática de:
- Visão Computacional
- Interação Humano-Computador
- Estruturação modular em Python
- Desenvolvimento de sistemas em tempo real
MIT License