Facial Morphing Software/Techniques?
scraps asks: " I am assisting an evolutionary psychologist who is researching how symmetry and size of facial features affects how others perceive a person's personality. I am looking for is a way to increase and decrease the symmetry of faces (digital images, not the living flesh), as well as increase and decrease the size of facial features while maintaining a "normal-looking" face. In the days of yore, Gryphon's Morph software seemed to be the weapon of choice, but they seem to have slipped into obscurity. I am using Mac OS X 10.2, and have Photoshop 7.0. Any ideas would be most welcome."
I just launched Morph 1.1 in Classic mode of my G4 running Jaguar. Ran just fine. The original code has a 1992 copyright on it, but it still seems to do the trick even ten years later.
I believe there may have been a 2.0 version of Morph at some point, but I never got a copy.
This sig intentionally left justified.
It seems to me that the algorithm used by Gryphon's Morph was pretty straightforward. Given a first and last frame of identical dimensions, the number of seconds of animation you wanted, and how many frames per second, and it would generate all the in-between states.
Without any additional control points, this was nothing more than a crossfade between the two sources. Individual control points had a correlation on both the first and last image, so you could map important things like the point of a nose, corners of a smile, etc. With control points in place, the pixels generated for the interim states would be calculated both by what frame in the sequece they were for, and where the pixel was, radially, from the nearest control point. Obviously, the more control points, the better looking the morph.
The next thing it added was the ability to draw vectors between pairs of control points for added smoothing. Draw all around the outline of a face, the eyes, mouth etc, and you'd not only have radial calculations from the control points, but points a distance off the line as well. Not sure exactly how they did that... maybe just right angle to the vector and adjusting influence proportional to proximity.
All that said, it seems the toughest thing would be the input method for defining control points. The calculations based off RGB of individual pixels could probably be done with ImageMagick or any other comprable graphics library...
Not that I have the chops to build an application with GUI, and I'm sure the technique I just described is probably patented by someone, but it doesn't seem like the type of app that should have dropped off the face of the earth...
This sig intentionally left justified.