Owen Jow

Graphics & Image Processing


Colorization via Alignment


Read the full writeup.


The input: no more and no less than the Prokudin-Gorskii collection, formatted as digitized stacks of glass plate negatives (where each of the aforementioned negatives represents a single RGB color channel).



The output: colorized photographs. In this particular case, colorization comes down to aligning the three negatives and stacking them into a single (height) x (width) x (3) NumPy array. We align by experimentally translating two of the negatives and measuring the quality of alignment with the final negative, through normalized cross-correlation over either colors or edges. Eventually, of course, our aim is to take the RGB alignment with the best score.


To speed up the process, we run a coarse-to-fine search (read: image pyramid) over the displacements.