Programming Project 3
Face Morphing

James Moffatt




I created this morph by defining a set of points on each image, and running it through my morphing function. My morphing function first adds points in each corner of the image so that there is no hard edge around the face. Next it creates a weighted average of the points for each image and calculates a delaunay triangulation of this average. Lastly, for each pixel, it determines which triangle it belongs to for the averaged point set, and performs a tranformation by barycentric coordinates to grab the pertaining pixels from the source images and averages them together.



Mean Face


Me morphed to mean

That looks pretty crazy. The only explanation I can come up with is inconsistentcies in the point labelings.

The mean face was generated by first finding the average point set of all faces, then morphing every face onto it, and then averaging these images together.

Charicature


This caricature was created in the same manner as warping my own face to the mean shape, except the warp_frac was set to -.5 to accentuate the differences between my own shape and the mean shape.

fullsize images here.