We are recovering homo this part. We compute the homo as the figure shown below.
We define the warping process for the image. We compute the inverse of the homo we found in last part, and warp our image into the shape of the homo transformation.
Now in this part, we are using an algorithm name RANSAC to complete the image mosaic. We first detect the corners of two images, the we do a process name "ANMS" to find similar points on the two images. Next, using the result from above, we match the matches between the two images. Lastly, we do the mosaic that is siilar to the previous part, but now using the results we have in this part. This process will required an canvas which we defined by the extrema (small or large) of the projected images. The projection process is simply proect the points of the homography matrix to the corners of our images. Hence, we get our mosaic image. The following includes the complete RANSAC process and the patches figure. For the mosaic process of the second part, we use the same image as the first part.
In this project, we learn two ways to mosaic, with one using the "brute force" that blends two images linearly, or using RANSAC to have the computer doing all the jobs for us. The upside on linear blend will be efficiency I guess, but it requires a little bit more work from us. If you have a dataset of the matching points of the two images, linear blend (which is part a) is much faster, but points selection might take a lot of time and people hate it. RANSAC, a much more "accurate" algorithm on image blending, or so call mosaic, but I can tell it need a much longer time. It takes serveral seconds for the linear blend to finish but takes several minutes for applying algorithm. Thus, the accuracy of RANSAC seems higher base on my outputs. It is really a interesting idea to blend two images into one, I feel I learnt a lot.