In this face morphing assignment, I explore merging faces together by morphing the Delaunay triangularization into an average shape and blend the colors together by cross-dissolving the images. I start off with picking around 30 corresponding points in each of the photos.


To find the corresponding points, I picked many lines that surrounded all the key features of the face, including the mouth, nose, eyebrows, eyelids, chin, etc. Next, I used Delauney's triangulation algorithm to generate a triangulation that minimized skinny/narrow angles and would help with the morphing process.

Above is the corresponding points that I chose for the morphing between myself and Emma Watson, making sure to pick key points in the facial features. Below is the Delauney triangularization of the two images after applying the points. After this step, we want to compute the mean points between two images and warp the corresponding triangles to fit into the mean triangularization.


In this portion I want to warp the triangles to find a mid-way triangularization of both faces. This process starts with averaging the points and creating a Delauney triangulation of the average points. Then, we want to compute an affine matrix that will transform the original faces into an "average face". I did this by iterating through all triangles in the original image, and applying the affine matrix to all the triangles to find the mean triangle pixels (using the interpolation function).

Here is the "average face" applied to both me and Emma Watson, and after applying 50% weight to both images when combining them.


To slowly transition and "morph" from one image to another, we need to calculate the merging of different warp weights, as well as cross-dissolve weights. As we transition, we want to gradually increase the weight of the second image while decreasing the weight of the first image to create a seamless morphing sequence.

Bells & Whistles: I used this algorithm to morph a sequence of myself throughout the years.


Using what I had learned above, I was able to use the Danes dataset to compute the "mean face" of the 33 males in the dataset. I did this by averaging all of the points and calculating the Delauney on that average, and morphed all of the images to the average shape. Then I averaged the pixels as well to get the average color. The result of applying the mean to specific people are as follows:

This is the resulting "mean face" for all the men of the dataset.

Bells & Whistles I have feminine features, so I wanted to see myself with masculine features used by the computed average male figure. Below is
1. Myself shaped into the average male face
2. The average male shaped into my face and
3. Myself morphed with the average male


Caricatures are exaggerated features in a portrait. I was able to recreate a caricature of Mr. President Obama by extrapolating from the mean face dataset. Specifically, I multiplied an alpha of 0.2, 0.5 and -1 to the difference between Obama's face points and the mean face points, and adding that back to use as the new shape of Obama's face. Below are the original photo, alpha points 0.2, 0.5, and -1, respectively