https://github.com/architj6/gesture-control-system
This Gesture Control System allows users to control various system functions (like mouse movement, volume adjustment, and screen brightness) using hand gestures through a webcam. It leverages MediaPipe for hand tracking and PyAutoGUI for controlling the system. The project enables intuitive, hands-free control for everyday tasks.
https://github.com/architj6/gesture-control-system
brightness-control cursor cursor-control doubleclick drag-and-drop gesture handgesture handgesture-recognition mediapipe numpy opencv os pyautogui pycaw python python3 scroll volume-control
Last synced: 3 months ago
JSON representation
This Gesture Control System allows users to control various system functions (like mouse movement, volume adjustment, and screen brightness) using hand gestures through a webcam. It leverages MediaPipe for hand tracking and PyAutoGUI for controlling the system. The project enables intuitive, hands-free control for everyday tasks.
- Host: GitHub
- URL: https://github.com/architj6/gesture-control-system
- Owner: ArchitJ6
- License: mit
- Created: 2025-01-30T14:03:48.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-01-30T14:26:14.000Z (4 months ago)
- Last Synced: 2025-03-26T02:11:21.996Z (3 months ago)
- Topics: brightness-control, cursor, cursor-control, doubleclick, drag-and-drop, gesture, handgesture, handgesture-recognition, mediapipe, numpy, opencv, os, pyautogui, pycaw, python, python3, scroll, volume-control
- Language: Python
- Homepage:
- Size: 9.77 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Gesture Control System 👋🖱️
This Gesture Control System allows users to control various system functions (like mouse movement, volume adjustment, and screen brightness) using hand gestures through a webcam. It leverages **MediaPipe** for hand tracking and **PyAutoGUI** for controlling the system. The project enables intuitive, hands-free control for everyday tasks.
---
## 📋 Table of Contents
1. [Installation](#🚀-installation)
2. [How it Works](#🔧-how-it-works)
3. [Features](#🌟-features)
4. [Supported OS](#💻-supported-os)
5. [Cloning (Optional)](#🔄-cloning-optional)
6. [Usage](#📦-usage)
7. [Components / File Structure](#🗂️-components--file-structure)
8. [Contributing](#🤝-contributing)
9. [License](#📜-license)
10. [Acknowledgments](#💡-acknowledgments)---
## 🚀 Installation
### Prerequisites
- Python 3.8+ (preferably 3.9)
- Make sure you have **pip** installed for managing Python packages.### Steps to Install
1. Clone this repository to your local machine:
```bash
git clone https://github.com/ArchitJ6/Gesture-Control-System.git
cd Gesture-Control-System
```2. Install the required dependencies:
```bash
pip install -r requirements.txt
```3. Additional packages for specific platforms:
- **Windows**: Install Visual C++ Redistributable for Visual Studio.
- **Linux/Mac**: Ensure `libopencv` and `libmediapipe` are installed.---
## 🔧 How it Works
The system utilizes a webcam to track the user's hand gestures, which are interpreted to trigger different actions like mouse movements, clicks, and adjusting system volume/brightness.
- **Hand gestures** are captured in real-time using **MediaPipe**.
- The captured gestures are mapped to system controls using **PyAutoGUI** and **PyCaw**.
- This project runs the webcam feed, detecting hand gestures and interpreting them into actions.---
## 🌟 Features
| Feature | Gesture Description |
|-------------------------------|------------------------------------------------------------------------------|
| **No Action Performed** | When all five fingers are up, the cursor stops moving. |
| **Cursor Moving** | When both the index and multiple fingers are raised, the cursor moves. |
| **Left Button Click** | Lower the index finger and raise the middle finger to perform a left-click. |
| **Right Button Click** | Lower the middle finger and raise the index finger to perform a right-click. |
| **Brightness Control** | Pinch with index and thumb, raise other fingers, and move hand horizontally. |
| **Volume Control** | Pinch with index and thumb, raise other fingers, and move hand vertically. |
| **Scrolling Vertically** | With the left hand, pinch with index and thumb, raise other fingers, and move hand vertically. |
| **Drag & Drop** | Lower all fingers after selecting an element, drag it, and drop it. |
| **Double Click** | Join/close index and middle fingers to perform a double-click action. |---
## 💻 Supported OS
| OS | Supported |
|-------------|-----------|
| **Windows** | ✅ Yes |
| **Linux** | ✅ Yes |
| **Mac** | ✅ Yes |---
## 🔄 Cloning (Optional)
If you'd like to fork or clone this project for your own use, you can follow these steps:
1. Fork the repository on GitHub to your own account.
2. Clone your forked repository to your local machine:```bash
git clone https://github.com/ArchitJ6/Gesture-Control-System.git
```3. Navigate to the project directory:
```bash
cd Gesture-Control-System
```---
## 📦 Usage
To start using the Gesture Control System, run the following command:
```bash
python main.py
```- The webcam will launch and start detecting your hand gestures.
- The corresponding actions (mouse movement, clicks, etc.) will be triggered based on the gestures you make.---
## 🗂️ Components / File Structure
```
gesture-control-system/
│
├── Constants.py # Contains configuration constants
├── Controller.py # Logic for system controls (mouse, volume, etc.)
├── GestureController.py # Manages gesture classification and interpretation
├── HandRecog.py # Hand recognition logic and gesture detection
├── main.py # Main script to run the system
├── requirements.txt # Required Python dependencies
└── README.md # Project documentation
```---
## 🤝 Contributing
We welcome contributions! If you'd like to help improve the system, feel free to follow these steps:
1. Fork the repository.
2. Clone your forked repository to your local machine:```bash
git clone https://github.com/ArchitJ6/Gesture-Control-System.git
```3. Create a new branch for your changes:
```bash
git checkout -b feature-branch
```4. Make your changes and commit them:
```bash
git commit -m "Add new feature XYZ"
```5. Push your branch:
```bash
git push origin feature-branch
```6. Open a pull request and describe your changes.
---
## 📜 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
---
## 💡 Acknowledgments
- **MediaPipe**: For their hand tracking model.
- **PyAutoGUI**: For mouse control and automation.
- **PyCaw**: For controlling system volume on Windows.
- **OpenCV**: For real-time video capture and image processing.---