Skip to content

Dnaka27/Computer_vision-Hand_control

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🖐️ VisionAuto: Controle de Mouse por Gestos Manuais

Este projeto transforma a sua mão em um controlador de mouse virtual, utilizando a sua webcam. Com o VisionAuto, você pode mover o cursor pela tela com o movimento do seu dedo indicador e realizar cliques e arrastar (hold) com o movimento do seu dedão.


📸 Como Funciona

O projeto utiliza as bibliotecas de visão computacional OpenCV e MediaPipe para detectar os marcos (landmarks) da mão em tempo real.

  • Posicionamento do cursor: A ponta do seu dedo indicador (ponto 8) é mapeada para a posição do cursor na tela. O movimento da sua mão na frente da câmera controla o movimento do mouse.
  • Clique e Hold: O clique do mouse é acionado quando a ponta do seu dedão se aproxima da base do dedão, simulando um movimento de pinça.
    • Um clique rápido (movimento de pinça e solta) executa um pyautogui.click().
    • Um movimento de pinça prolongado por mais de 1 segundo inicia um pyautogui.mouseDown() para arrastar objetos. Soltar o dedão executa o pyautogui.mouseUp().

⚙️ Pré-requisitos

Certifique-se de que você tem o Python instalado em seu sistema. Este projeto foi testado com Python 3.11.

Instale as bibliotecas necessárias usando pip:

pip install opencv-python mediapipe pyautogui

🚀 Como Executar

  1. Clone o repositório:

    git clone [https://github.com/seu-usuario/seu-repositorio.git](https://github.com/seu-usuario/seu-repositorio.git)
    cd seu-repositorio
  2. Execute o script Python:

    python main.py

Ao executar o script, uma janela da sua webcam será aberta. Coloque sua mão na frente da câmera e veja a mágica acontecer!


🛠️ Calibração

O código inclui um sistema de calibração visual que ajuda a ajustar a sensibilidade do clique. Ao iniciar o programa, observe as informações no canto superior esquerdo da janela da webcam.

  • Distancia: Este valor mostra a distância, em pixels, entre a ponta e a base do seu dedão.
  • Estado: Indica o estado atual da sua mão (IDLE, POTENTIAL CLICK, HOLDING, RELEASE, CLICK).

Ajustando o Clique

  1. Aproxime a ponta do seu dedão da palma da mão, como se fosse fazer um clique.
  2. Anote o valor de Distancia exibido na tela no momento em que a pinça está fechada.
  3. Abra o arquivo main.py e ajuste o valor da variável click_threshold_distance para um número um pouco maior do que o que você anotou. Por exemplo, se o valor for 45, ajuste para 50 ou 55.

Ajustando o Hold

A variável hold_time_threshold define o tempo (em segundos) que a sua mão precisa ficar na posição de clique para que o hold seja ativado. O valor padrão é 1 segundo, mas você pode ajustá-lo para ser mais rápido (ex: 0.5) ou mais lento (ex: 1.5) conforme sua preferência.

# Valor a ser ajustado para a calibração do clique
click_threshold_distance = 50

# Valor a ser ajustado para a calibração do hold
hold_time_threshold = 1

🚨 Solução de Problemas

Se o programa não abrir ou fechar imediatamente, pode haver um problema com o acesso à sua webcam.

  • Erro Camera index out of range: Verifique se sua câmera está conectada e tente alterar o valor do índice de captura de vídeo:
    cap = cv2.VideoCapture(0) # Tente 0, 1, 2...
  • Erro Não foi possível ler um quadro...: A sua câmera pode precisar de mais tempo para iniciar. Tente aumentar o valor de time.sleep().

🤝 Contribuições

Contribuições são bem-vindas! Se você encontrar um bug ou tiver uma ideia para uma nova funcionalidade, sinta-se à vontade para abrir uma issue ou enviar um pull request.

📜 Licença

Este projeto está sob a licença MIT License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages