15-463 Computational Photography

Project 1: Colorizing the Prokudin-Gorskii photo collection

by Ming Yao

Basic Image Alignment:

I started by implementing the basic algorithm using SSD with a [-20 20] window. I found out that the target channel affected the result a lot. Some images were aligned much better if I chose R or G as the target channel instead of B. I tried computing the average brightness of each channel to see whether there's some rule to make the result better, but this didn't work. I ended up applying a canny edge detector before applying the basic algorithm and the results improved a lot, and this algorithm worked for all the images. I also implemented the algorithm using NCC, but didn't see much difference.

00056v.jpg G [5 1] R [12 0]

00125v.jpg G [6 2] R [10 1]

00163v.jpg G [-3 1] R [-4 1]

00207v.jpg G [1 0] R [10 0]

00804v.jpg G [6 -1] R [13 -4]

01164v.jpg G [6 1] R [11 3]

01269v.jpg G [6 2] R [13 3]

01522v.jpg G [6 2] R [13 1]

01597v.jpg G [7 1] R [15 1]

01598v.jpg G [8 0] R [16 -1]

01728v.jpg G [8 1] R [18 1]

10131v.jpg G [6 2] R [12 3]

   

31421v.jpg G [8 0] R [13 0]

   

Multiscale:

The algorithm I used for large images scale them in to 1/16, 1/8, 1/4, 1/2 and 1/1, searching with a window of [-16 16], [-8 8], [-4 4], [-2 2], [-1 1] respectively. I also detected the edges before using align images.

00458u.tiff G [40 8] R [85 29]

00911u.tiff G [15 -4] R [133 -12]

01007a.tiff G [61 13] R [129 12]

01047u.tiff G [26 24] R [73 32]

01657u.tiff G [57 9] R [120 13]

01725u.tiff G [76 45] R [160 76]

01861a.tiff G [68 36] R [143 62]

Images of Self Choice

01898v.jpg G [4 0] R [11 0]

00548v.jpg G [7 1] R [14 1]

01880v.jpg G [6 2] R [14 4]

01043u.tiff G [-16 9] R [10 14]