I have taken a set of images to use for the mosaicing.
Image rectification will allow us to view an image from a different perspective. I've implemented warping beforehand to enable the warping between two sets of points. Thus for image rectification we can use the warping funciton. To show the results, I've selected images with planar surfaces and warped them so that the plane is frontal-parallel.
Original Image(Left); Rectified Image(Right)
However, the shadow of the objects the image gives away our result.
In this part of the project, we will automatically stitch images into a mosaic by matching features of images and compute a robust homogray using RANSAC.
First, we will use the Harris Interest Point Detector to detect corners in an image.
Harris Interest Point Detector
In order to make the corners more spatially spread out in the images, we will use Adaptive Non-Maximal Suppression(ANMS) algorithm. This algorithm will take the harris corners detected interest points as input . Using this algorithm, we can restrict the maximum number of interest points while making sure that they are spatially well distributed. In the project, I've set the maximum number of points to be 500.
After ANMS
Now that we have a set of interest points, we need to find a way to match interest points from one image to the other. A preliminary step is to compute feature descriptor for each interest point. The feature descriptors will be 8x8 patches from 40x40 pixel window. We will then bias/gain-normalize the descriptors.
Next, we will find points that are similar and match them. We will use Lowe's techenique to select 1-NN/2-NN ratio is less than some threshold .
We can see from our feature matching result that some of the points don't match correctly and some other points point to the same point in the destination image. So we will use 4-point RANSAC to further filter out our points in order to give a robust homography. We can see the remaining points match very well.