Computational Photography: Project 1
Alyssa Gerharter, Fall 2012


Description
This assignment uses digitized glass plate images taken by Segei Mikhailovich Prokudin-Gorskii. The glass plate images show three exposures of the same image, each in a different color channel red, green, or blue. We combine the three channels in order to produce a colorized photo.

Technique
The algorithm uses the sum of squared differences (SSD) in order to align color channels - green and red are aligned onto the blue. For small images, this is done over a window of [-15,15] by shifting the pixels and comparing to the other image. This is done using circshift in MATLAB.

For larger images, an image pyramid is used. The images are recursively downsized 50% and compared using the above algorithm but with a [-5,5] window, starting from the computed offset from the previous level. The pyramid has 5 levels, meaning at the lowest level the images are compared at 1/16 size.

Once the best offset (with the lowest SSD) has been found, the image is shifted by those values and superimposed onto the other color channel(s).

Small Scale Images

Green:4,1; Red:10,-1

Green:2,3; Red:5,5

Green:6,1; Red:12,0

Green:2,2; Red:4,3

Green:3,0; Red:6,-1

Green:1,-1; Red:13,-1

Green:1,1; Red:4,2

Green:6,1; Red:11,1

Green:6,2; Red:14,4

Large Scale Images

Green:41,11; Red:92,2

Green:49,36; Red:107,55

Green:35,23; Red:52,36

Green:42,1; Red:91,29

Green:15,5; Red:51,14

Green:58,23; Red:124,30

Green:17,-10; Red:51,-21

Green:-17,9; Red:11,16

Green:24,20; Red:72,33

Extra Images

Green:52,14; Red:103,17

Green:73,22; Red:154,35

Green:21,14; Red:51,21

Green:66,32; Red:140,51