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

Jacob Huynh
CS 194-26: Image Manipulation and Computational Photography
Professor Alexei Efros

Overview

Russian photographer Sergei Mikhailovich Prokudin-Gorskii (1863-1944) was a pioneer in color photography during the 20th-century. The method of photography Prokudin-Gorskii used was first suggested by James Clerk Maxwell (1831-1879). The idea was to imitate the way the normal eye sees color by dividing the visible spectrum into three seperate channels -- red, green, and blue. By taking a black-and-white picture with each filter applied separately, the resulting three photographs could be projected through filters of the same color and superimposed on a screen, resulting in a colored photograph.

In this project, we will be using image processing techniques to align the three channels of a single image into one, compositve colored image.

Approach

Pre-Processing

As explained in the overview, the images were initially split into their respective red, green, and blue channels.


Small Images: Naive Alignment

The first step was to seperate the channels so that we may use image metrics to superimpose the channels on top of each other. This step was provided nicely by the skeleton code, so all we had to come up with was the image metric itself. The image metric I used was normalized cross correlation. With sufficiently small images, naively searching exhaustively on the pixels and computing the image metric is computationally feasible, however, on larger images there will be problems, as we will discuss later.


cathedral.jpg
R: [8, 4], G: [0, 0]

settlers.jpg
R: [16, 0], G: [8, 0]

monastery.jpg
R: [0, 0], G: [-4, 0]

nativity.jpg
R: [4, 0], G: [0, 0]

Large Images: Multi-Scale Alignment

For larger images, exhaustive search becomes computationally-slow and inefficient. Thus, for images with any dimension that exceeded 500 pixels, an image pyramid was used for processing: each image was repeatedly shifted and rescaled to minimize computation at the highest (100% scale) level.


village.tif
R: [128, 0], G: [0, 0]

turkmen.tif
R: [128, 32], G: [64, 32]

train.tif
R: [64, 0], G: [64, 0]

three_generations.tif
R: [96, 0], G: [32, 0]

self_portrait.tif
R: [192, 64], G: [64, 0]

lady.tif
R: [96, 0], G: [32, 0]

icon.tif
R: [64, 0], G: [64, 0]

harvesters.tif
R: [128, 0], G: [64, 0]

emir.tif
R: [0, -832], G: [0, 0]

The alignment algorithm I created with just a simple pyramid image processing structure was insufficient in some cases for these large pictures, the most obvious being emir.tif. I suspect that this is the case because the image metric that I used, normalized cross correlation, compares the similarity of the intensity of each pixel. In the case of emir.tif, the intensity of each pixel is extremely different on, in particular, the clothing the man is wearing, which will throw off the alignment algorithm. In order to make a better colorized composite photo, there must be some border detection implemented.

Additional Images from the Prokudin-Gorskii Photo Collection