CS194-26: Project 1

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

Rebecca Pei (cs194-26-acf)


Project Overview

The purpose of this project is to use various image processing techniques in order to produce a color image from the Prokudin-Gorskii glass plate images. Sergei Mikhailovich Prokudin-Gorskii's technique for producing color images was to take 3 different exposures for every scene: one with a blue filter, one with green, and one with red. When these 3 exposures are aligned and placed on top of one another, they produce a full color image. Now, these glass plates are available online from the Library of Congress.


Single-Scale Implementation

First, I implemented exhaustive search over a [-15, 15] pixel window of displacements for the smaller .jpg images. I used the sum of squared differences (SSD) as a metric to identify the best displacement - indicated by the smallest SSD - for the green channel over the blue channel and for the red channel over the blue channel. Once I found the best displacement for each channel, I stacked them on top of each other to produce the full color image. However, I realized that the results I was initially getting were not very good, so I cropped about 6% off every side of each channel before finding the appropriate displacements.

Image Image Name and Displacement Vector

cathedral.jpg

Green (2, 5), Red (3, 12)

monastery.jpg

Green (2, -3), Red (2, 3)

tobolsk.jpg

Green (3, 3), Red (3, 6)


Image Pyramid Implementation

For the larger .tif images, an exhaustive search over a [-15, 15] pixel window takes too long. In order to speed up the alignment process, I implemented an image pyramid with a scaling factor of 2. I used recursive calls until the image reached a width less than or equal to 200 pixels. For the smallest rescaled image, I used the single-scale implementation to search over a [-15, 15] window. For each successively larger image, I scaled up the displacement vector, shifted the channel, and re-ran the single-scale implementation over a [-1, 1] window in order to update the estimated displacement vector. This implementation of the image pyramid produced very good results for nearly all of the .tif photos.

Image Image Name and Displacement Vector

harvesters.tif

Green (16, 59), Red (13, 124)

icon.tif

Green (17, 40), Red (23, 89)

lady.tif

Green (9, 47), Red (11, 113)

melons.tif

Green (10, 82), Red (13, 179)

onion_church.tif

Green (26, 51), Red (36, 108)

self_portrait.tif

Green (28, 78), Red (36, 176)

three_generations.tif

Green (14, 53), Red (11, 112)

train.tif

Green (5, 42), Red (31, 87)

village.tif

Green (12, 65), Red (22, 137)

workshop.tif

Green (0, 52), Red (-12, 104)

emir.tif

Green (24, 49), Red (-468, 0)


Extra Examples from the Prokudin-Gorskii Collection

These are a few examples I chose from the Prokudin-Gorskii collection.

Image Image Name and Displacement Vector

chapel.tif

Chapel on the site where the city of Belozersk was founded in ancient times. [Belozersk, Russian Empire]

Green (21, 45), Red (43, 105)

big_cathedral.tif

Assumption Cathedral in the Dalmatov Monastery

Green (-30, 57), Red (-55, 130)

pendants.tif

Panagias [enkolpia]. In the vestry of the Ipatevskii Monastery. Kostroma

Green (9, 62), Red (4, 135)

gates.tif

Old gates in the Church of the Assumption of the Mother of God. Deviatiny. [Russian Empire]

Green (18, 17), Red (30, 93)