Project description
The goal of this assignment is to take the digitized Prokudin-Gorskii glass plate images and, using image processing techniques, automatically produce a color image with as few visual artifacts as possible. In order to do this, I extract the three color channel images, place them on top of each other, and align them so that they form a single RGB color image.
Window of displacements
Anchoring at blue image, we try to align red image and green image by trying a window of displacements, say [-15, 15]. For each displacement value, we roll the image accordingly, and evaluate some distance function between it and the anchored image. We select the displacement with the minimum distance value.
Distance Function
For this assignment, there are 2 possible distance function. First is SSD (Sum of Squared Distance), and second is NCC (Normalized Cross Correlation). After experimenting with both, I concluded that the results were extremely similar. I only evaluate the distance function over the certer 2/3 of the images, since rolling an image will append the overflowed part on one side to the opposite side, which will not match the original image.
Pyramid Method
For large images, it is extremely slow and inefficient to perform the window method over a large set of displacements. Therefore we downscale the image, and use a small window size to align the coarse image; with that alignment, we double the scale of the image, so on and so forth. For each scale, we only use a small window; however we are moving to an accurate alignment gradually over the scales.