CS194-26: Image Manipulation and Computational Photography, Fall 2017

Project 1: Images of the Russian Empire

Karl Cempron, CS194-26-aeg



Overview

The goal of this assignment is to take the digitized Prokudin-Gorskii glass plate images and, using image processing techniques, automatically produce a color image with as few visual artifacts as possible. In order to do this, you will need to extract the three color channel images, place them on top of each other, and align them so that they form a single RGB color image.

Section I: Implementation

Part 1: Single-Scale

There are many image aligning methods, but the one used is to compare the R, G, and B channels to find matches in intensity. To align the images, the G and R channels are being compared against the B channel respectively in some x, y displacement. I chose to use a [-15, 15] pixel window (left, right, up, and down). The alignment algorithm I used was Sum of Squared Differences (SSD):

ssd = sum( sum( (image1 - image2) ^ 2 ) ) The smaller the value, the smaller the difference and therefore a better alignment.


Monastery G: [-3, 2], R: [3, 2]
Cathedral G: [5, 2], R: [12, 3]
Settlers G: [7, 0], R: [14, -1]
Nativity G: [3, 1], R: [7, 1]

Part 2: Multi-Scale

Exhaustive search will become prohibitively expensive if the pixel displacement is too large (which will be the case for high-resolution glass plate scans). In this case, I implemented a faster search procedure, image pyramid and the processing is done sequentially starting from the coarsest scale (smallest image) and going down the pyramid, updating your estimate as you go. It is very easy to implement by adding recursive calls to my original single-scale implementation.


Harvesters G: [60, 18], R: [124, 17]
Icon G: [40, 18], R: [89, 24]
Lady G: [48, 8], R: [112, 10]
Nativity G: [77, 29], R: [175, 37]

Three Generations G: [49, 17], R: [108, 13]
Train G: [42, 6], R: [85, 32]
Turkmen G: [56, 22], R: [117, 30]

Section II: Bells and Whistles

Edge Detection

Edge detection does a comparison between the changes in intensities. There are many approaches to edge detection such as Roberts detection. This approach was very useful for images such as Emir and Village which had r g b values that did not do well with either SSD or NCC due to varying degrees of brightness. By using edge detection, we are better able to align such images.


Before
After G: [48, 23], R: [-83, -70]
Before
After G: [64, 12], R: [66, -38]

Additional Images


Hut G: [51, 51], R: [110, 67]
Squad G: [48, -16], R: [86, -54]
Beans G: [40, -37], R: [108, -80]