Repository guide: Overview · Projects · Technologies · Future work
This repository is a curated collection of image processing and computer vision projects developed in Python. The projects focus primarily on classical computer vision techniques and practical, real-world use cases.
The goal of this repository is to demonstrate a solid understanding of:
- Image processing fundamentals
- Traditional computer vision pipelines
- Algorithmic thinking applied to visual data
A simple security camera system that detects motion and changes in video frames using classical image processing techniques.
Key concepts:
- Frame differencing
- Background subtraction
- Motion detection
- OpenCV video processing
A document scanning pipeline that automatically detects document boundaries and applies perspective transformation to obtain a clean, scanned version.
Key concepts:
- Edge detection
- Contour detection
- Perspective transformation
- Image enhancement
An algorithm that analyzes images and counts dominant colors or specific color ranges.
Key concepts:
- Color spaces (RGB / HSV)
- Color masking
- Pixel-level analysis
- Histogram-based processing
A tool that processes document images or PDFs by automatically adjusting contrast, brightness, and converting them to grayscale for improved readability.
Key concepts:
- Image normalization
- Contrast enhancement
- Grayscale conversion
- PDF and image preprocessing
A computer vision application that detects and decodes QR codes from images or live camera input.
Key concepts:
- QR code detection
- Image preprocessing
- Classical CV-based object detection
- OpenCV utilities
- Python
- OpenCV
- NumPy
- Classical computer vision algorithms
This repository represents my early to mid-stage computer vision work, focusing on understanding how visual data is processed at a low level before applying deep learning approaches.
It serves as a foundation for:
- Advanced computer vision
- Deep learning-based vision models
- Real-time vision systems
- Each project is organized in its own folder.
- Projects are independent and can be run separately.
- The focus is on clarity, learning, and practical application rather than heavy optimization.
- Performance optimizations
- Better modularization
- Integration with deep learning-based vision pipelines
- Real-time and embedded system extensions