I marked 64 keypoints for each image using ginput and used Delaunay to illustrate the triangulation.
I calculate the triangulation at the mid-way points and define an affine transformation matrix. I take the inverse of this matrix and apply it to each triangle of the mid-way triangulation to get the original points on each image. Then I use interpolation to get the colors and then cross-dissolve.
I run the same function to compute the mid-way face, but with different warp and cross-dissolve weights for each frame. I run this function 45 times to produce 45 frames.
I use the IMM Face Database (37 images) and calculate the mean geometry of all the faces. I then morph every face to fit the mean geometry. Here are some examples:
I compute the mean face by averaging color across all morphed images.
I then morph my face into the mean face's geometry and morph the mean face into my face's geometry.
I take the difference between the points of the mean face and my face's points and added 2 times that value to the original points on my face. I compute a triangulation of the extrapolated points and warp to it.
I get an image of the average Chinese woman and define keypoints. I morph my appearance, shape, and both.