- Hybrid Image: Superposing a low-frequency component of an image & a high-frequency component of another image allows you to see both the images at once.
- Image Pyramids: Gaussian & Laplacian pyramids enable multi-scale representation of images. They have many applications in image blending, editing & texture synthesis.
- Edge Detection: Gradient-based edge detector is coded from scratch.
- Template Matching: A SSD (Sum of Squared Differences) based template matching algorithm is implemented.
- Feature Detection & Tracking: Implemented a Harris operator based corner detector followed by Non-maxima Suppression to select a few good keypoints & used the Kanade-Lucas-Tomasi procedure to track the movement of those keypoints in a video.
- Shape Alignment: Given two shape outlines (masks) of similar objects, Iterative Closest Point Algorithm is used to find a transformation matrix between them.
- Object Instance Recognition: Using SIFT-features of keypoints in 2 images Lowe-style object instance recognition is implemented.
- Epipolar Geometry: Given a pair of stereo images, estimated homography matrix between them using the normalized 8-point algorithm and calculated the corresponding epipolar lines for various points.
- Image Stitching: Given a set of overlapping images, detect the repeating keypoints in a successive pair of images & calculate the Fundamental Matrix between the 2 images using RANSAC & normalized 8-point algorithm & finally combine the 2 images.
- Affine Structure from Motion: Given a sequence of images with camera movement involving only affine transformations, recover the 3D structure of the scene.
- SLIC Super-pixel Segmentation: Implemented the SLIC super-pixel segmentation algorithm from scratch.
- Graph-cut Segmentation: Implemented Graph-cut segmentation using OpenCV.