Overview

This project involved taking digitized Prokudin-Gorskii glass plate images, which consist of three photos, each representing a different channel in (red, blue, green), and overlaying them to produce a colorized image.

Approach

The main problem with colorizing the images was the issue of overlapping the images so that the channels would properly align. To resolve this issue, I circularly shifted the red and green images to properly align with the blue image. To determine which shift was optimal, I calculated a normalized cross-correlation between the red/green images and the blue image, taking the alignment with the highest value. Just before calculating the normalized cross-correlation, I cropped the images to get the center 80% of the width and height, so that the black edges would not skew the results of the calculation. However, since the computation times were too long when trying every displacement for the larger .tif files, I went with an image pyramid approach. This involved recursively finding the best displacement for a 2x scaled-down version of the image, and using that displacement to get a finer value for the optimal displacement in the larger image. Once an image got to fewer than 200 pixels in height, I would try every displacement. Doing this yielded fast computations and good results for all images except for emir.

Emir was different than the other images, in that certain channels were highly represented in parts of the image while other channels were not, and thus a normalized cross-correlation was the wrong calculation. This is because normalized cross-correlation favors alignments where the values at each part of both images are greater and lower in the same areas. A better solution for emir, which would also work for the other images, could be edge-detction in each of the channels, then aligning the edge-detected channels.

Example Image Output

Chosen Image Output