https://github.com/rishraks/virtual_screen
Virtual Screen enables users to write on their screen using hand gestures tracked by a webcam. With real-time hand detection and motion tracking, users can draw, annotate, or interact with the screen without physical input devices, offering a seamless and intuitive virtual writing experience.
https://github.com/rishraks/virtual_screen
computer-vision mediapipe-hands opencv-python
Last synced: 9 months ago
JSON representation
Virtual Screen enables users to write on their screen using hand gestures tracked by a webcam. With real-time hand detection and motion tracking, users can draw, annotate, or interact with the screen without physical input devices, offering a seamless and intuitive virtual writing experience.
- Host: GitHub
- URL: https://github.com/rishraks/virtual_screen
- Owner: rishraks
- License: mit
- Created: 2024-12-27T07:19:59.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-29T15:24:34.000Z (over 1 year ago)
- Last Synced: 2025-06-25T05:08:03.312Z (12 months ago)
- Topics: computer-vision, mediapipe-hands, opencv-python
- Language: Python
- Homepage:
- Size: 11.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Virtual_Screen
Virtual Screen enables users to write on their screen using hand gestures tracked by a webcam. With real-time hand detection and motion tracking, users can draw, annotate, or interact with the screen without physical input devices, offering a seamless and intuitive virtual writing experience.
## Features
- **Real-Time Hand Tracking**: Detects the user's hand and tracks the index finger.
- **Smooth Drawing**: Implements position smoothing for stable and seamless drawing.
- **Boundary Constraint**: Ensures drawing is allowed only within a predefined rectangle.
- **Customizable Canvas**: Clear the canvas using a key press (`c`).
- **Live Feedback**: Displays the tracked finger position and boundary area.
- **Color Palette**: Choose different colors for drawing.
- **Brush Size Palette**: Adjust brush size for precise or bold strokes.
- **Palm Erase**: Use your palm gesture to erase parts of the canvas.
---
## Technologies Used
- **Python 3.7+**
- **OpenCV**: For video capture and frame processing.
- **MediaPipe**: For hand and finger tracking.
- **NumPy**: For efficient array operations.
---
## Setup Instructions
1. **Clone the Repository**
```bash
git clone https://github.com/rishraks/Virtual_Screen.git
cd virtual-drawing-canvas
```
2. **Install Dependencies Use pip to install the required libraries**
```bash
pip install opencv-python mediapipe numpy
```
3. **Run the Application Execute the Python script**
```bash
python Virtual_Screen.py
```
## How to Use
1. Start Drawing:
- Position your index finger within the boundary rectangle displayed on the screen.
- Move your finger to draw lines on the virtual canvas.
2. Select Color:
Move your hand over the color palette area on the screen and tap with your index finger to select a color.
3. Adjust Brush Size:
Interact with the brush size palette to switch between various brush thicknesses.
4. Clear Canvas:
- Press the c key to clear the canvas.
5. Exit:
- Press the q key to quit the application.
## Future Enhancements
- Save the canvas as an image file.
- Implement multi-finger gesture recognition for advanced controls.
- Add undo/redo functionality for enhanced editing.
## License
This project is licensed under the MIT License. See the LICENSE file for details.
## Acknowledgments
- MediaPipe for robust hand tracking.
- OpenCV for frame processing.
- Community tutorials and resources on computer vision.