This repository is a complete, modular, and progressive deep dive into OpenCV for beginners and intermediate developers. Each section builds upon the last with clear code and hands-on demonstrations.
Built for those who value practical learning over heavy theory, and for learners who don’t always have access to premium resources. This course moves from foundational image operations all the way to deep learning–based pose estimation.
Understand how to load, display, and save images using OpenCV. Learn about BGR vs RGB formats and how to integrate images into basic Python workflows.
Key Topics
- Reading and writing image files
- Displaying with
cv2.imshow()and matplotlib - Image properties and color space conversion
Explore geometric transformations that are the building blocks for advanced vision tasks.
Key Topics
- Image resizing, flipping, cropping
- Image rotation and affine transformations
- Drawing on images using shapes and text
Learn how to annotate images for debugging, visualization, or data labeling.
Key Topics
- Overlaying text
- Drawing bounding boxes and landmarks
- Practical uses for annotations in ML pipelines
Tweak and improve the quality of images for better processing outcomes or presentation.
Key Topics
- Contrast and brightness adjustments
- Histogram equalization
- Color correction and normalization
Go beyond static images. Capture live input from your webcam or external video sources.
Key Topics
- Capturing video frames
- Frame-by-frame processing
- Keyboard input handling in real-time
Record processed output to video files using OpenCV’s video encoding capabilities.
Key Topics
- Using
cv2.VideoWriter() - Handling codecs and formats
- Combining real-time processing with recording
Discover how filters transform images and how edge detection reveals structure.
Key Topics
- Blurring with Gaussian, median, and bilateral filters
- Sharpening images
- Edge detection using Sobel, Laplacian, and Canny algorithms
Align multiple images into the same visual perspective by matching key features and applying homographic transformations.
Key Topics Covered
- Detecting keypoints using ORB
- Computing feature descriptors for each image
- Matching features using Brute-Force based matchers
- Estimating homography using matched points and RANSAC
- Warping images to align perspectives accurately
Automatically stitch overlapping images into a seamless panorama — without needing a tripod.
Key Topics
- Feature detection with ORB
- Homography estimation
- Image warping and stitching pipeline
Follow objects across frames using OpenCV’s object tracking APIs.
Key Topics
- Multiple built-in trackers like KCF, MIL, CSRT
- Initializing bounding boxes
- Tracking performance and reliability
Apply pretrained Haar Cascades and DNN models to detect human faces in images and video.
Key Topics
- Haar Cascade classifiers
- Deep learning–based face detection
- Detection in video streams
Use deep learning models like MobileNet SSD to identify objects in real-time.
Key Topics
- Using pretrained TensorFlow models
- Loading models with
cv2.dnn.readNetFromTensorflow() - Drawing bounding boxes and class labels
Detect human body keypoints and draw a full skeleton overlay using OpenPose in OpenCV.
Key Topics
- Preprocessing images for pose models
- Confidence map extraction
- Connecting keypoints into pose graphs
- Visualization of detected skeletons
Each folder/module contains:
- Python scripts with step-by-step code
- Annotated explanations as comments
- In most cases, links to run in Google Colab
Credit goes to the OpenCV community and especially to Satya Mallick for foundational contributions to OpenCV learning resources.
“Culture shouldn't exist only for those who can afford it.”
— Hakita, ULTRAKILL
This course was created with that mindset. Open source, accessible code and educational content should be for everyone — not just for those behind a paywall or with perfect setups.
If this repo helps even one more developer learn computer vision with limited resources, it has served its purpose.
The course ends here — but your journey doesn't.
Fork this. Break it. Improve it. Rebuild it in your style.
Projects begin where tutorials end.
Created and maintained by
Aaditya Yadav