Shoot and digitize pictures

Going to google earth, I took screenshots of a construction location around campus. For the other picture, I took a screenshot in Minecraft of the HyPixel server.

Recover Homographies and Warping

Warping is done by computing the homographies, which is a transformation in the form of a matrix. It requires solving for 8 variables, and each point can solve 2, so in total needs at least 4 to solve the matrix system.

Shown below are the input to warping, and output after solving the homographies and applying the warping transformation. Both warp a rectangular face to be straightened.


To create the mosaics, I take more screenshots of minecraft, from the HyPixel server.

Manually selecting 8 points (greater than the required 4) for each, I get:

I then "warp" the first image to the second, and take a weighted average of the images in the overlapping regions.


HIP, ANMS, Features and RANSAC

Harris Interest Points Detection

HIP calculates through a matrix equation points where traveling in a line results in a change in intensity. For Minecraft, luckily, there aren't many images, otherwise it could flood the entire image when displaying!


ANMS calculates the r-score of each point i, and selects the top few points. What's used is the Harris score to determine the score. $$r_{i} = \min _{j} \|x_{i} - x_{j}\| \space s.t. \space H(i) < 0.9 * H(j)$$

Feature Descriptor Extraction and Matching

Features are extracted from the points, and then to match the features, brute force search is used to match them.


As described in class, we create robust homographies by rejecting all outliers

Mosaic results

Using the points, I recreate the mosaics. Compared to hand-selected points, these look a bit more accurate.

Lessons Learnt

Very nice! We can take panorama pictures using just a few frames, the magic of phone camera isn't even that cool! I always thought it was blending the video and matching 1 line of frames each time to stitch, but it's doing much more than that!