CS 194-26 Project 1 - Images of the Russian Empire

By Jennifer Thakar

Overview

The goal of this project was to take negatives from the Library of Congress collection of Prokudin-Gorskii color photographs, align the three channels, and overlay them into a color image.

Process

I build an image pyramid for each negative, dividing the width by 2 until it is less than 100 pixels. At each level, I use the sum of squared differences between the blue channel and each of the green and red channels at each of 25 offsets with both x and y between -2 and 2.

Once the best match is found at that level, I double the image size and the offset and repeat until I eventually find the offsets for the original image

When calculating the SSD, I ignore a border equal to 8% of the width.

Click any thumbnail to open the album of full size images.

Provided Images

nativity Alignment: b(1, 0); g(0, -3); r(1, -7)
cathedral Alignment: b(3, 0); g(1, -5); r(0, -12)
settlers Alignment: b(0, 0); g(0, -7); r(1, -15)
monastery Alignment: b(3, 0); g(1, 3); r(1, -3)
train Alignment: b(62, 0); g(56, -42); r(30, -87)
harvesters Alignment: b(31, 0); g(14, -60); r(18, -124)
emir Alignment: b(62, 0); g(38, -49); r(6, -103)
three_generations Alignment: b(15, 0); g(1, -53); r(4, -112)
village Alignment: b(31, 0); g(19, -65); r(9, -138)
lady Alignment: b(15, 0); g(7, -56); r(4, -116)
turkmen Alignment: b(31, 0); g(10, -56); r(3, -116)
self_portrait Alignment: b(39, 0); g(10, -79); r(2, -176)
icon Alignment: b(31, 0); g(14, -41); r(8, -90)

Additional Images

bridge Alignment: b(0, 0); g(18, -27); r(37, -77)
canoe Alignment: b(0, 0); g(6, -13); r(12, -133)
stained_glass Alignment: b(62, 0); g(46, -19); r(44, -59)
tower Alignment: b(15, 0); g(9, -28); r(3, -104)