# Panorama
Panoramas are not just planar, it can also be spherical and cylindrical.
- Capture images
- Detection and matching
- Warping => Aligning images
- Blending, Fading, Cutting
- Cropping
Given x number of views, it is possible to generate any synthetic camera view as long as it has the same center of projection
# RANSAC approach
Loop till you find a convergence/popular H
- select four feature pairs (at random)
- Compute homography H (exact)
- Compute inliers where:
- Keep largest set of inliers
- Recompute least-squares H estimate on all of the inliers
Not that there are more inliers than outliers, but that the outliers are wrong in different ways.
# Panorama - From Scratch
- Load images
- Pass each image through a feature detector like
cv2.ORB/cv2.SIFT
that extracts the keypoints and compute descriptors - Optionally, you can draw circles around the keypoints by passing them over the image through
cv2.drawKeyPoints
to visualize - Match the keypoints using matcher like the brute force matcher
cv2.BFMatcher
- Create two sequences of corresponding matched points based on what was returned by the matcher above
- Compute homography (since our objects are planar) using RANSAC to reject outliers
- Create panorama by applying the homography matrix as a warp to the images (look in lecture video for clarity)
- Apply blending and cuts for more sleek panorama
← Image Morphing HDR →