Programming Assignment 1

Due 5:59PM on Tuesday, February 10

In this assignment you will learn about image warping, resampling, and metamorphosis.  You will implement Beier's feature-based image metamorphosis algorithm.  The algorithm was published in an article that appeared in the Proceedings of SIGGRAPH 92.


Directly Relevant Reading

  1. Beier and Neely, "Feature-based image metamorphosis," in Proc. SIGGRAPH 92, pp. 35--41. Note: There is a small typo on page 37 of Beier-Neely: line 7 of the pseudocode should say D[i]=X'[i]-X, not X'[i]-X[i].
  2. Cheng-Ling Lin's notes on feature-based image metamorphosis
  3. Heckbert, P., Fundamentals of Texture Mapping and Image Warping, Masters Thesis, Dept. EECS UC Berkeley, June 1989.

Other Relevant Reading

  1. Burt and Adelson, "A Multiresolution Spline With Application to Image Mosaics,"  in ACM Trans. on Graphics, pp.2(4):217--236, October, 1983.
  2. Lee, Wolberg, Chwa, and Shin, "Image metamorphosis with scattered feature constraints," IEEE Trans. Visualization and Computer Graphics, 2(4):337--354, 1996.
  3. Seitz and Dyer, "View morphing," in Proc. SIGGRAPH 96, pp. 21--30.
  4. Wolberg, G., Digital Image Warping, IEEE Computer Society Press, ISBN 0-8186-8944-7, 1992.

Extra Credit

Use Burt and Adelson's multiresolution image splining to blend only that part of the image which is "masked" via a binary image mask. For an example, see the hand image in Burt and Adelson's paper listed above. Be sure to warp both images and their binary image masks at  each step in the metamorphosis, before building the corresponding image pyramids.   You are welcome to download an implementation of pyramids from the WWW  (i.e., you don't have to write your own REDUCE and EXPAND functions). For instance, here are some locations where example Matlab code is available:

Submitting Your Report

By the deadline, send the URL for your report WWW page to the grader: TBA

What You Turn In

Create an HTML document "p1.html" that describes your project. In the first part of the report, write a paragraph that describes how your modules work. Also include psuedo-code and equations for the procedures you developed for your image morphing program. The detail you give should be sufficient for someone else to implement your system.

Include at least three different image morphing sequences (grayscale or color is OK). You should include either images or movie files as part of the HTML document you create.  If you complete the extra credit, please include two additional sequences and also show the image mask employed at each step in the morph. You should also include the source images used to produce the morph.

Finally, include your source files, program executable, and Makefile. Please be sure to tell us what computer platform (e.g., PC, Solaris) your tool runs on.

The report you write should be clear and to the point. The code you submit should be well-structured and clearly documented.