Project 1: Colorizing the Prokudin-Gorskii Photo Collection

Project Overview

Sergei Mikhailovich Prokudin-Gorskii (1863-1944) was a visionary who foresaw the potential of color photography as early as 1907. He travelled across across the vast Russian Empire, capturing everything he saw. His technique was simple yet groundbreaking: he recorded three exposures of every scene onto a glass plate using red, green, and blue filters. This project aims to take digitized glass plate images and implement image processing techniques to produce color images with minimal visual artifacts.

Approach

For this project, as the course staff suggested, I used a basic approach to image alignment using Normalized Cross-Correlation (NCC), which measures similarity between two images, or their colour channels, by comparing their pixel intensity patterns, and adjusts their positions to achieve maximum alignment. I also included edge detection through a Sobel-like operation that calculates vertical and horizontal gradients, enhancing the edges for better alignment accuracy. The right side of the below samples shows how I built upon NCC w/ edge detection to factor in contrast, white balance, as well as histogram equalization.

Improvements

While I think the overall results from this project are a decent attempt at automatically producing these colour images, my next goal would be to fine tune the alignment for some of the larger .tif images. Additionally, the white balance and contrast on certain pictues could be improved as well.

Results

NCC w/ Edge Detection
With Contrast & White Balance
cathedral.jpg
B: [-7 -1], G: [-5 -2], R: [12 3]
B: [-7 -1], G: [-5 -2], R: [12 3]
monastery.jpg
B: [-6 -1], G: [3 -2], R: [3 2]
B: [-6 -1], G: [3 -2], R: [3 2]
tobolsk.jpg
B: [-4 0], G: [-3 -3], R: [7 3]
B: [-4 0], G: [-3 -3], R: [7 3]
church.tif
B: [-4 0], G: [-3 -3], R: [7 3]
B: [-4 0], G: [-3 -3], R: [7 3]
emir.tif
B: [-4 0], G: [-3 -3], R: [7 3]
B: [-4 0], G: [-3 -3], R: [7 3]
harvesters.tif
B: [-31 1], G: [-30 -9], R: [62 7]
B: [-32 1], G: [-30 -9], R: [61 7]
icon.tif
B: [-24 -3], G: [-21 -9], R: [45 11]
B: [-24 -3], G: [-21 -9], R: [45 11]
lady.tif
B: [-31 -2], G: [-27 -4], R: [58 7]
B: [-31 -2], G: [-27 -4], R: [57 7]
melons.tif
B: [-48 -2], G: [-41 -5], R: [91 6]
B: [-48 -2], G: [-43 -5], R: [91 6]
onion_church.tif
B: [-29 -5], G: [-25 -14], R: [54 18]
B: [-29 -5], G: [-25 -13], R: [54 18]
sculpture.tif
B: [-53 8], G: [-17 5], R: [70 -13]
B: [-53 8], G: [-17 5], R: [70 -14]
self_portrait.tif
B: [-49 -4], G: [-39 -14], R: [87 18]
B: [-49 -4], G: [-39 -14], R: [88 18]
three_generations.tif
B: [-29 2], G: [-26 -6], R: [55 5]
B: [-30 2], G: [-26 -7], R: [56 5]
train.tif
B: [-21 13], G: [-21 -3], R: [43 16]
B: [-22 13], G: [-22 -3], R: [43 16]

Acknowledgements

This project is a course project for CS 180 at UC Berkeley. Part of the starter code is provided by course staff. This website template is referenced from Bill Zheng.