To morph between two images, this algorithm first calculates the location of each
correspondence point by interpolating between the location of the point on each image.
It then uses a Poisson Fill algorithm to calculate the value for each pixel.
Each of the correspondence point gets set to the X or Y location of the correspondence
point in the original image. Additionally, the Poisson fill also fixes all of the
pixels on the border to ensure that the pixels outside of the feature points don't
just become a blur. The offsets for all other points are calculated by using the Poisson fill.
Once both images have been warped, they are then blended together using a cross
To calculate the mean face, I first averaged the correspondence points on all the
images to get their average locations. I then warped all the images to those points
and averaged the results to get the mean face.
The video below shows the results of all of my morphs:
Morphing was the most successful when the faces were oriented the same way. Additionally,
when the subjects had hair of significantly different lengths, it tends to make
the morphing very noticeable. Adding more points around the head to capture the
shape of the hair would probably improve the results.
Below are the starting, middle and ending frames for all the morphs: