15-463 Project #1: Colorizing the Prokudin-Gorskii photo collection
Done by: Junjie Liang (junjieli)
7 September 2010
Overview
Sergei Mikhailovich Prokudin-Gorskii (1863-1944) was a man well ahead of his time. Convinced, as early as 1907, that color photography was the wave of the future, he won Tzar's special permission to travel across the vast Russian Empire and take color photographs of everything he saw. And he really photographed everything: people, buildings, landscapes, railroads, bridges... thousands of color pictures! His idea was simple: record three exposures of every scene onto a glass plate using a red, a green, and a blue filter. Never mind that there was no way to print color photographs until much later -- he envisioned special projectors to be installed in "multimedia" classrooms all across Russia where the children would be able to learn about their vast country. Alas, his plans never materialized: he left Russia in 1918, right after the revolution, never to return again. Luckily, his RGB glass plate negatives, capturing the last years of the Russian Empire, survived and were purchased in 1948 by the Library of Congress. The LoC has recently digitized the negatives and made them available on-line.
In this project, we recreate Prokudin-Gorskii's images by aligning his RGB glass plates automatically using image processing techniques.
Technical details
The project was done using matlab and its basic image and matrix manipulation libraries. The RGB channel images were placed on top of one another with various displacements, and the displacement that returned the smallest SSD (Sum of Squared Difference) between the channels was used. An image pyramid was used to first align the images in a coarse way, then fine-tuning the alignment as we move up the image pyramid. To save time, for the larger images only the center 500x500 pixels were used for alignment.
Results
Smaller images
Green displacement from red: (-4, 1), Blue displacement from red: (-10, -1)
Green displacement from red: (-7, -2), Blue displacement from red: (-14, -6)
Green displacement from red: (-5, -1), Blue displacement from red: ( -5, -1)
Green displacement from red: (-5, 0), Blue displacement from red: (-13, 0)
Green displacement from red: (-8, 0), Blue displacement from red: ( -9, 0)
Green displacement from red: (-6, -1), Blue displacement from red: (-11, -4)
Green displacement from red: (-5, 0), Blue displacement from red: ( -9, -2)
Green displacement from red: ( 2, 0), Blue displacement from red: ( 4, -1)
Green displacement from red: (-9, -1), Blue displacement from red: (-13, -1)
Green displacement from red: (-6, 0), Blue displacement from red: (-11, 0)
Larger images (click to enlarge)
Green displacement from red: ( -65, -4), Blue displacement from red: (-119, -7)
Green displacement from red: ( -77, -24), Blue displacement from red: (-146, -63)
Green displacement from red: ( -48, -14), Blue displacement from red: ( -71, -34)
Green displacement from red: (-121, 6), Blue displacement from red: (-133, 14)
Green displacement from red: ( -43, -26), Blue displacement from red: ( -86, -32)
Green displacement from red: ( -56, -21), Blue displacement from red: (-106, -61)
Green displacement from red: ( -26, -10), Blue displacement from red: ( -13, -20)
Extra images from the LoC
Source image Green displacement from red: (-7, -1), Blue displacement from red: (-14, -4)
Source image Green displacement from red: (-7, 2), Blue displacement from red: (-13, 2)
Source image Green displacement from red: (-7, 0), Blue displacement from red: (-12, -2)
Bells and whistles
Some of the images turned up with a thick border, which is due to the fact that the borders of the color channels did not align well. So a script was added to the program which determined where the borders were and cropped it away automatically. This script determined where the borders were by looking at the SSD between the color channels and removing the boundary rows and columns where the SSD error crossed a preset threshold. This algorithm works better on some images than others. However, here are some of the better results for illustration (compare them with the images before edge removal).
Before border removal |
After border removal |
|
|
|
|
|
|
|
|