Abe Wong (arwong.spamalope@andrew.cmu.edu)
This is an implementation of the Beier-Neely (1992) morphing algorithm.
Features were marked by hand...
The long hair was particularly difficult to convincingly morph using linear interpolation of feature segments. Most of the hair still appears in a large cross-dissolved section. Other morphing issues could be fixed with the addition of more feature markers.
I implemented a function which takes a reference image and an image with some expression (both with marked features), and applies that expression to an arbitary image. The expression distance metric takes into account feature position and pixel values, although it is fairly simplistic.
It fails fairly badly with a face from the Aleix Face Database, due to the below pixel difference. Results are not shown...
Features:
Pixel difference of warped reference expression and base reference:
It works much better on this really simple demo...
Reference:
Source and Morph: