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. Thus, I extracted the three color channel images, placed them on top of each other and aligned them so that they form a single RGB color image.
First, I processed and prepared the .jpg
image by splitting it into three equal sections, cropping the outer 15% of the image to remove the dark or black borders and yield a more accurate alignment. I then aligned the images by exhaustively searching over the interval [-15, 15] and finding the best alignment based on Normal Cross-Correlation (NCC). A higher NCC meant a better alignment. Finally, I returned the image with the best alignment, or highest NCC.
In order to process larger .tif
images, I used image pyramids. I processed every image using the same method as I did in the single-scale alignment. Then, I rescaled the image by 0.5
, halving its size for 2
iterations. This means that the pyramid has 2
levels of 0.5
and 0.25
of the original image. I aligned the images starting from the coarsest level (level 2
, 0.25
of the original image), adding each level's displacement multiplied by 2^level
to d = (dx, dy)
, initialized to (0, 0)
. Finally, I used d
as the displacement to align the original .tif
image and returned it.
I chose 4 images from the given link in the project description. I downloaded 2 as .tif
files and the other 2 as .jpg
files. I aligned the .tif
using multiscale alignment and the rest using single-scale alignment.