My Projects

Colorizing the Prokudin-Gorskii Photo Collection

Colorizing the Prokudin-Gorskii Photo Collection

Sergei Mikhailovich Prokudin-Gorskii (1863-1944) [Сергей Михайлович Прокудин-Горский, to his Russian friends] was a man well ahead of his time. Convinced, as early as 1907, that color photography was the wave of the future, he won Tzar's special permission to travel across the vast Russian Empire and take color photographs of everything he saw including the only color portrait of Leo Tolstoy. And he really photographed everything: people, buildings, landscapes, railroads, bridges... thousands of color pictures! His idea was simple: record three exposures of every scene onto a glass plate using a red, a green, and a blue filter. I took the digitized Prokudin-Gorskii glass plate images and used image processing techniques to automatically align them on top of each other, producing full color photographs.

Fun with Filters and Frequencies

Fun with Filters and Frequencies

Hybrid images are static images that change in interpretation as a function of the viewing distance. The basic idea is that high frequency tends to dominate perception when it is available, but, at a distance, only the low frequency (smooth) part of the signal can be seen. By blending the high frequency portion of one image with the low-frequency portion of another, you get a hybrid image that leads to different interpretations at different distances. I used 2D convolutions to develop hybrid images and seamlessly blend images together at different frequency levels.

Face Morphing and Modelling a Photo Collection

Face Morphing and Modelling a Photo Collection

Images of faces are aligned by selecting corresponding points between them, i.e. eyes to eyes, mouth to mouth, chin to chin, ears to ears, etc. We can compute the Delaunay triangulation across these points, and find the mean point set between two images. Then, we use the affine transformation matrix to warp each triangle from the original image to the new average shape. We interpolate pixel values using an inverse-warp. In this project, I produced a "morph" animation of two different faces, computed the mean of a population of faces, and extrapolated from a population mean to create a caricature of myself. I created a facial coordinate space and used Principal Component Analysis to find the eigenvectors with the largest singular values.

Autostitching Photo Mosaics

Autostitching Photo Mosaics

Images of faces are aligned by selecting corresponding points between them, i.e. eyes to eyes, mouth to mouth, chin to chin, ears to ears, etc. We can compute the Delaunay triangulation across these points, and find the mean point set between two images. Then, we use the affine transformation matrix to warp each triangle from the original image to the new average shape. We interpolate pixel values using an inverse-warp. In this project, I produced a "morph" animation of two different faces, computed the mean of a population of faces, and extrapolated from a population mean to create a caricature of myself. I created a facial coordinate space and used Principal Component Analysis to find the eigenvectors with the largest singular values.