A real-time video processing application that captures video from a camera, applies various image processing operations, and outputs the processed video to a virtual camera for use in applications like Zoom, Discord, or OBS Studio.
This project was developed as part of a Computer Vision course at Technische Hochschule Ingolstadt. It demonstrates real-time image processing capabilities including statistical analysis, filtering operations, and face recognition.
- Real-time video capture from physical camera using OpenCV
- Virtual camera output using pyvirtualcam for integration with video conferencing apps
- Live histogram visualization with RGB channel analysis
- Interactive controls for switching between different processing modes
- Linear Transformation - Contrast and brightness adjustment
- Histogram Equalization - Automatic contrast enhancement
- Edge Detection - Sobel filter for edge highlighting
- Gaussian Blur - Smoothing filter
- Sharpen Filter - Detail enhancement
- Gabor Filter - Texture analysis and pattern detection
- Face identification with known faces from image database
- Privacy protection with automatic face blurring for unknown individuals
- Visual indicators with bounding boxes and name labels
- Python 3.8 or higher
- OBS Studio (for virtual camera functionality)
- Compatible webcam
-
Clone the repository:
git clone https://github.com/rohanraaj2/Virtual-Camera.git cd Virtual-Camera
-
Install required packages:
pip install -r requirements.txt
-
Setup face recognition (optional):
- Add face images to the
images/
directory - Supported formats: .jpg, .png
- Name files as "PersonName.jpg" for automatic recognition
- Add face images to the
-
Install OBS Studio:
- Download from https://obsproject.com
- Install virtual camera plugin if needed
python run.py
Key | Function |
---|---|
1 |
Original image (no filter) |
2 |
Linear transformation |
3 |
Histogram equalization |
4 |
Edge detection |
5 |
Gaussian blur |
6 |
Sharpen filter |
7 |
Gabor filter |
S |
Toggle statistics display |
Q |
Quit application |
- Start the application with
python run.py
- Open OBS Studio
- Add "Video Capture Device" source
- Select "OBS Virtual Camera" as device
- The processed video feed will appear in OBS
- Use OBS Virtual Camera in your video conferencing application
[Physical Camera] → [OpenCV Capture] → [Image Processing] → [Virtual Camera] → [Output Applications]
This project was developed as part of an academic assignment. Contributions and improvements are welcome for educational purposes.
This project is developed for educational purposes as part of a university course.
Developed by students Rohan Raj, Angel Lopez Hortelano and Begüm Sezer at Technische Hochschule Ingolstadt under the guidance of Professors Torsten Schön, Venkatesh Thirugnana Sambandham and Dominik Rößle.