Project 1: Colorizing the Prokudin-Gorskii photo collection

Overview

Sergei Mikhailovich Prokudin-Gorskii was a Russian photographer who travelled across Russia taking photos under RGB filters. Given Prokudin-Gorskii's glass plate images, we can apply image processing techniques to colorize these images. First, we must separate the image into its RGB channels. Then, overlay and align the images to generate a clean, colored image.

Approach

To align the three channels, we can align them using brute force. By shifting the channels over a small window of [-15, 15] and computing the L2 norm (Sum of Squared Differences) to find the shift with the least differences in alignment.

Image Pyramid

For high resolution glass plates, we must apply a more efficient algorithm than traversing through all posssible pixel displacements. An image pyramid is an image that is scaled at varying factors. To align these high resolution images, we start at the lowest level of the pyramid and compute an exhaustive search. Once we compute an estime of the shift, we then move to the next higher level using our estimate from the previous level to find the optimal shift.

Problems

I encountered problems with emir.tif. I attempted to allign the image based off of RGB; however, the alignment was slightly off. To create a clear image of emir, I think edge detection would effectively allign the image over RGB because the edges of emir.tif highly affected the L2 norm.

Populating the interactive namespace from numpy and matplotlib

Results

Example Images

Photo:  cathedral.jpg
Green Shift:  (-7, 0)
Blue Shift:  (-7, 1)
Photo:  monastery.jpg
Green Shift:  (-6, -1)
Blue Shift:  (-9, -1)
Photo:  three_generations.tif
Green Shift:  (-55, 0)
Blue Shift:  (-107, -7)
Photo:  melons.tif
Green Shift:  (-96, -2)
Blue Shift:  (-175, -7)
Photo:  icon.tif
Green Shift:  (-49, -3)
Blue Shift:  (-90, -20)
Photo:  harvesters.tif
Green Shift:  (-65, 2)
Blue Shift:  (-117, -7)

Additional Prokudin-Gorskii Collection Images

Photo:  lugano.tif
Green Shift:  (-55, 11)
Blue Shift:  (-83, 23)
Photo:  onion_church.tif
Green Shift:  (-54, -8)
Blue Shift:  (-107, -28)
Photo:  shops.tif
Green Shift:  (-79, 0)
Blue Shift:  (-128, 2)