Nicole Rasquinha

Computational Photography

Project 1: Images of the Russian Empire

Project Overview:

In this project, we tackle the problem of colorizing the Prokudin-Gorskii collection. Sergei Prokudin-Gorskii realized a method of taking color photographs even before colored photos were possible to manufacture. He took three pictures of the same image, each with a different glass plate filter -- one in red, blue, and green. Then, theoretically, one could combine the three color channels together to produce the fully colored image. Unfortunately, Prokudin-Gorskii did not get to see his work come to fruition, but in this project, we get a chance to colorize the images like he envisioned.

Project Approach:

In order to colorize each image, I align the red and blue channels to the green channel. I chose green to be the base for similar reasons as the Bayer filter uses twice as many green squares than blue or red. Furthermore, when aligning the images I am only concerned with the inner portions of the image. That is where the main subjects likely are and when a human looks at a photo, he will focus his attention on the center anyway. Therefore, it is more crucial to get the middle correct. This also allows me to save time by cutting down the necessary computations. Originally I used blue as the base. With this method, I ran into issues aligning emir.tif, since his overcoat is blue. Therefore, the pixels on the coat were very high for the blue plate, but very low for the red plate. Since I penalize difference in pixel brightness, I was getting terrible results for aligning red to blue. Since most blues in our world are also, to some degree, green, switching the base to green remedied the situation.

Furthermore, for large images, it is inefficient to search thoroughly for the best alignment. Therefore, I used a pyramid scheme to determine a good alignment. I zoom in the image by 2x repeatedly, collecting my pyramid of images until it is within 300x300 pixels (very low resolution). Then starting from low resolution and working my way up, I determine the best alignment within a window of 15 pixels. Using that best shift, I start my search for the next image from that same point. I repeat this process until I have found the shift for my original image.

Given Images:

CATHEDRAL


Image of cathedral
Blue offset: (-2, -5) Red offset: (1, 7)

EMIR


Image of emir
Blue offset: (-24, -48) Red offset: (17, 57)

HARVESTERS


Image of harvesters
Blue offset: (-17, -59) Red offset: (-3, 64)

ICON


Image of icon
Blue offset: (-18, -41) Red offset: (5, 49)

LADY


Image of lady
Blue offset: (-8, -53) Red offset: (4, 60)

MONASTERY


Image of monastery
Blue offset: (-2, 3) Red offset: (1, 6)

NATIVITY


Image of nativity
Blue offset: (-1, -3) Red offset: (-1, 5)

SELF_PORTRAIT


Image of self_portrait
Blue offset: (-29, -78) Red offset: (8, 98)

SETTLERS


Image of settlers
Blue offset: (0, -7) Red offset: (-1, 8)

THREE_GENERATIONS


Image of three_generations
Blue offset: (-14, -52) Red offset: (-3, 59)

TRAIN


Image of train
Blue offset: (-6, -43) Red offset: (26, 43)

TURKMEN


Image of turkmen
Blue offset: (-22, -56) Red offset: (7, 60)

VILLAGE


Image of village
Blue offset: (-12, -64) Red offset: (10, 73)

 

My Chosen Images:

BOAT


Image of boat
Blue offset: (8, -13) Red offset: (-6, 121)

BRIDGE


Image of bridge
Blue offset: (6, -12) Red offset: (12, 56)

CHILDREN


Image of children
Blue offset: (-36, -64) Red offset: (18, 77)

RIVER


Image of river
Blue offset: (-17, -18) Red offset: (13, 72)

TOWN


Image of town
Blue offset: (-1, -6) Red offset: (-1, 7)