Introduction

The main component of this project was the implementation (in MATLAB) of an image morphing tool. The tool uses the standard technique of defining a Delaunay triangulation over a set of manually-specified control points, then applying a set of per-triangle affine transformations to "warp" each source image toward the destination image while simultaneously cross-dissolving their colors. This tool was then used to a) create a two-second animation of myself morphing into a classmate, b) calculate the average face of 15-463/15-862 students, and c) perform various manipulations by using the average face data.

The Morph (a.k.a. "Birds of a Freather")

Below left, a photo of myself. Below right, a photo of my unfortunate classmate Heather. (Unfortunate because she was unlucky enough to stand behind me in line on the day pictures were taken, thus becoming part of my assignment).

Using the morphing tool, it becomes possible to reveal for the first time anywhere a strange creature known only as the "Freather" whose appearance lies precisely halfway between that of myself and that of my classmate. Additionally, I present a low-resolution version of the startling animation revealing the Freather's bizarre genesis.

(The morph was defined using a total of 57 control points: 43 "standard" points suggested by the assignment, 6 additional points on the neck and shoulders, and 8 additional points at the corners and midpoints of the image borders.)

Mean-Looking Faces

By fixing the color cross-dissolve parameter at 0 or 1, it becomes possible to use the morphing tool as an image warper which transforms one of its source images to match some other geometry. If we find the average geometry of a set of faces, warp each of the source faces to that geometry, and then average the images together, we can produce a sort of "average face" for the set. Below left is such a "mean face" computed for (some of) the students taking 15-463/15-862 this semester.

Unfortunately, at the time I completed this part of the project, only 10 of my classmates had posted a complete set of the "standard" control points for their images. Not to be deterred, I thought it would be nice to extend the data set to include usable data from the collection of past 15-463/15-862 students. Below right is a "mean face" computed over a total of 25 faces (including the 11 used at left).

Having this "mean face" data allows for various interesting transforms. For example, I can warp my face to fit the average geometry (below left), or warp the "mean face" to fit my face geometry (below right). (Each of these was computed using the "larger data set" mean above right).

 

"Bells & Whistles" - (Coreless) Image Fun House

By pushing the warp parameter outside of its normal [0, 1] range, it is possible to exaggerate the unique geometry of a face by pushing it further away from the mean geometry. An example (my face, warped away from the mean by a factor of -0.75) is below left. The resulting image (which is distorted but maintains photorealistic color) appears something like the reflection in a carnival funhouse mirror.

Another fixture of carnivals and fairs is the caricature artist, whose work may be partially imitated by first performing a particularly exaggerated warp, and then applying a custom filter to the result. An example of a caricature-like image (produced after considerable experimentation with warp parameters and the design of the custom filter) is shown below right.

Finally, some mid-semester fun for my classmates (or at least the 10 for whom data was available when I ran this). Enjoy!