Project 4 - Face Morphing!

Ashley Lin


In this project, we learned about affine transformations and triangulations. These concepts are useful in morphing two images into one another by finding corresponding points and then triangulating to figure out which source triangles morph into which destinations.


The mid way face correspondance points between both the source and destination images.

Mid Way Face

The mid way face after computation with affine transformation.

Morph Sequence

A gif of 64 scaled affine transformation between the source and destination. Each image has a scalled warp_frac and dissolve_frac for putting emphasis on one side versus another's geometry and pixel values.

Mean Face

I used a free data set of Danish Faces to compute the average Danish face and warp other faces to and from the average. This process consisted of parsing through all of the points in the danish data set's .asf files. After finding all correspondence point locations, I took the mean of them all to find the mid way points. From there, I iterated through all danish images and morphed them towards the mid way face and cross dissolved all images together to get my final average Danish face.

The Average Danish Face
Danish People Morphed Towards Average
Warped Geometry


In this section, I emphasize my features in comparison to the features of the average Danish person. Basically, extrapolate a new face using the average. This yields an image of me with a much larger nose and a smaller chin.

Bells And Whistles

Change Gender of My Brother
In this section, I change my brother's gender to female. The left two images are the original images. The third image is one of just affine transforming my brother to the average shape but with his original pixel values. The fourth image is one of simply cross dissolving both starter images together. The final image is the compelte affine transformation of both images together. The final image looks pretty cute!