Image Warping and Mosaicing
For this project, we warped images so they could be aligned and blended to create mosaics. There are several steps to this process. First, I labeled corresponding points in the two images. The points in the image that is going to be warped are †and the points that they will be warped to are . I can then use these points to find a homography between the two images. To convert between them. To do this, I first define the following matrices.
I then used least squares to solve for †using †and . Rewriting †gave me the homography
This lets me warp the first image onto the second set of points using the following equation.
This lets me find where the edges of the image should be so I can determine the size of the warped image. Then I use the inverse of the previous equation to find the value of every pixel in the warped equation.
To test my code, I first warped an image of a trapezoid into a rectangle.
Left: trapezoid. Right: warped rectangle.
Then, I warped a picture of a cube of magnets so different sides faced forward.
Left: Cube warped so itís left side faces forward. Middle: Original picture of the cube. Right: Cue warped so itís top faces forwards.
Next, I created mosaics by merging images. I warped one image to align with the other image and then used feathering to blend the images.
Top left: Left side of the mural. Top right: Right side of the mural. Bottom: Blended mosaic.
Top left: Left side of VLSB. Top right: Right side of VLSB. Bottom: Blended mosaic.
If the camera is translated too much between images, they wonít align correctly.
Top left: Left side of the hills. Top right: Right side of the hills. Bottom: Blended mosaic.
Top left: Left side of the skyline. Top right: Right side of the skyline. Bottom: Blended mosaic.