DigiVFX
Digital Visual Effects, Spring 2005

Jump to...

project #2
project #3
scribe
final project
assignments


project #1: image morphing

Assigned: 2005/03/09
Due: 2005/03/29 11:59pm
artifacts, winning artifacts

Project description

Image morphing is a technique to synthesize a fluid transformation from one image (source image) to another (destination image). Morphing has been wildly used in making visual effects. One of the most famous morphing example is Michael Jackson's "Black or White" MTV. The morphing algorithm used to make this video has been described by Beier and Neely in their SIGGRAPH 1992 paper. As explained in class, morphing has two parts, warping and cross-dissolving. The second part is the easy part while the first part is harder. To have a visually pleasing morphing results, features in both the source and destination images have to been corresponded appropriately, usually by users. There are many ways for specifying the warp function. This paper gives a very through review. You are free to use any morphing algorithm you like.
  • mesh warp: the warp is specified by control meshes. The algorithm was described in class.
  • field warp: the warp is specified by a set of line pairs. An example is the Beier and Neely algorithm.
  • point warp: the warp is specified by a set of control points. A simple solution is to use triangulation to convert point warp to mesh warp. There are several more complicated techniques such as scattered data interpolation and free-form deformation.
In this project, you will implement an image morphing program in teams of two. Please send me the members' names of your team by 3/16. You can choose any platform and programming language you like for your implementation. We will provide a generic image library, gil, as a high-level image abstration and clean image I/O interface. If you want to make a morph video, you can use VirtualDub to convert a sequence of images into a video. It is not required to implement a user interface, but you are strongly encouraged to do it.

Bells and whistles

Students will get extra points if they implement any of the following extensions:
  • multi-source morphing: synthesize morph images from more than two images, such as polymorph.
  • automatic morphing: synthesize morph sequences without any user inputs. It is very difficult for genaral images. However, it is possible if the input images are of objects of a class, such as frontal faces. This paper uses work minimization to do morphing automaticallly.
  • morphing for animated sequences as described in the Beier and Neely paper.
You are welcome to do any other extensions or develop algorithm realted to morphing. The bonus depends on how useful and difficult these extensions are.

Submission

You have to turn in your complete source, the executable, a complete test example and instruction to run the test, a report in html format (including all resources) and your favorite artifact.

The report could contain a description of this project, what you have learned from this project, description of the algorithm you implemented, implementation details, results (either good or bad), and what extensions you have implemented. You also have to submit your favorite artifact generated by the program you have implemented (not the reference software). For the artifacts for this project, submit the source, destination and middle images. All class participates will vote for the top three artifacts. The creators for these artifacrs will get extra bonus points. I will announce the submission mechanism soon.

Reference software

You can try any morphing software listed in the Morphing software review page, for example, Abrosoft's FantaMorph.

Reference