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