Matching keypoint descriptors
In the last chapter, we learned how to extract keypoints using various methods. The reason that we extract keypoints is because we can use them for image matching. Let's consider the following image:
As you can see, it's the picture of a school bus. Now, let's take a look at the following image:
The preceding image is a part of the school bus image and it's been rotated anticlockwise by 90 degrees. We could easily recognize this because our brain is invariant to scaling and rotation. Our goal here is to find the matching points between these two images. If you do that, it would look something like this:
Following is the code to do this:
import sys import cv2 import numpy as np def draw_matches(img1, keypoints1, img2, keypoints2, matches): rows1, cols1 = img1.shape[:2] rows2, cols2 = img2.shape[:2] # Create a new output image that concatenates the two images together output_img = np.zeros((max([rows1,rows2]), cols1+cols2, 3), dtype='uint8') ...