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