Yanhe Chen
Before you can warp your images into alignment, you need to recover the parameters of the transformation between each pair of images. In our case, the transformation is a homography: p’=Hp, where H is a 3x3 matrix with 8 degrees of freedom (lower right corner is a scaling factor and can be set to 1). One way to recover the homography is via a set of (p’,p) pairs of corresponding points taken from the two images.
where im1_pts and im2_pts are n-by-2 matrices holding the (x,y) locations of n point correspondences from the two images and H is the recovered 3x3 homography matrix. In order to compute the entries in the matrix H, you will need to set up a linear system of n equations (i.e. a matrix equation of the form Ah=b where h is a vector holding the 8 unknown entries of H).
Warp the images so they're registered and create an image mosaic. Instead of having one picture overwrite the other, which would lead to strong edge artifacts, use weighted averaging.
first example
second example
third example
I used the pictures I took to set the standard points and use the same standard poitns to create two or more H to warp other pictures. Then i blend all the images into one mosaic.
I used the image as the input and then calculate Rmax and geting a grayscale output image.
Warp the images so they're registered and create an image mosaic. Instead of having one picture overwrite the other, which would lead to strong edge artifacts, use weighted averaging.
Using k-d trees to calculate the neighboring feature descriptors two to matched the first one with threshold 0.7.
Reapeating the process: 1. randomly selected four points and calculate the homography using svd. 2. calculates the ssd of inliers. 3. keep the maxinliers and H if the sdd is meet the threshold.
I stwiched the images one by one.
first example
second example
third example
I learned to effeciently using vectorizaion during the process of dealing with images. The equation that (xi-1)*h+y is quite useful.