Assignment 1: Colorizing the Prokudin-Gorskii Photo Collection

Student name: Tianxiang Lin
Andrew ID: tianxian

Project Overview

This project aims at aligning RGB glass plates using image processing techniques.

Two approaches are implemented for the alignment: single-scale alignment and multiple-scale pyramid.

For single-scale alignment, a normalized cross-correlation (NCC) score is computed between target and reference image channel:
NCC=(x,y)I1I1(x,y)I2(x,y)I1I2.\text{NCC} = \sum_{(x,y) \in I_1}\frac{I_1(x,y)I_2(x,y)}{||I_1||||I_2||}.

Even though computing NCC is time-consuming related to the sum of squared differences (SSD) distance, NCC is able to align images regardless of their brightness.

Multiple-scale Pyramid rescales images to multiple layers and reduces the search region by processing sequentially from the top of the image pyramid. For alignment on each layer, the single-scale alignment algorithm implemented in part one of this project.

Single-scale Alignment

For single-scale image alignment, the search window size is set to 30. Note that each edge of the image is cropped by 20%. The result is as follow:

Image Name Pre-alignment Post-alignment Shift
cathedral green[5,2], red[12,3]

Multiple-scale Pyramid

For single-scale image alignment, the number of pyramid layers is 3 and the search window size is set to 50. Each side of the images are also cropped by 20%. The results are as follow:

Image Name Pre-alignment Post-alignment Shift
emir green[49,24], red[103,55]
harvesters green[59,16], red[123,13]
icon green[41,17], red[89,23]
lady green[51,9], red[112,11]
self_portrait green[78,29], red[175,36]
three_generations green[53,14], red[112,11]
train green[42,5], red[87,32]
turkmen green[56,21], red[116,28]
village green[64,12], red[137,22]

Also, three self-selected images from the Library of Congress are also aligned using the same pipeline and paramenters:

Image Name Pre-alignment Post-alignment Shift
melon_vendor green[81,10], red[175,12]
monastery green[-25,17], red[34,22]
peasant_girls green[-16,10], red[11,17]