Project 1: Images of the Russian Empire - Colorizing the Prokudin-Gorskii Photo Collection

Overview

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 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.

Approach

For the low-resolution image, I initially computed the alignment with brute force, calculating the score between the base channel and Offset channel with normalized cross-correlation, but the result wasn't quite promising. The issue was resolved after I removed a percentage (default to 10%) of the border to prevent aligning the edges of the images.

cathedral_off.jpg
without border crop
cathedral_perfect.jpg
with border crop

For the high-resolution image, I utilized an image pyramid, where the image is downscaled to a certain level and the alignment process is applied from the most-coarse level. By default, I set the scaling factor to 2 and levels to 5. This works reasonably well for most of the high-resolution images, except for a few, such as the image labeled "emir". This, in turn, was resolved by utilizing Sobel edge detection, which computes the gradient of the image intensity at each pixel, emphasizing regions where the intensity changes sharply.

emir_off.jpg
without Sobel edge detection
emir_perfect.jpg
with Sobel edge detection

Image Gallery

Image 1
Cathedral
(Offset: G=[5, 2], R=[12, 3])
Image 2
Church
(Offset: G=[25, 4], R=[58, -4])
Image 3
Emir
(Offset: G=[49, 24], R=[107, 40])
Image 4
Harvesters
(Offset: G=[60, 18], R=[125, 11])
Image 5
Icon
(Offset: G=[40, 16], R=[89, 23])
Image 6
Lady
(Offset: G=[57, 9], R=[120, 13])
Image 7
Melons
(Offset: G=[80, 10], R=[176, 12])
Image 8
Monastery
(Offset: G=[-3, 2], R=[3, 2])
Image 9
Onion Church
(Offset: G=[52, 26], R=[108, 35])
Image 10
Sculpture
(Offset: G=[33, -10], R=[139, -26])
Image 11
Self Portrait
(Offset: G=[80, 30], R=[175, 37])
Image 12
Three Generations
(Offset: G=[54, 12], R=[110, 8])
Image 13
Tobolsk
(Offset: G=[3, 3], R=[6, 3])
Image 14
Train
(Offset: G=[42, 9], R=[90, 33])