../cos526.jpg (39279 bytes)

Advanced Computer Graphics, Fall 2014


Programming Assignment 2: Image Analogies

Due on Friday, Oct 24 at 11:59PM


Overview

In this assignment you will implement image analogies as described in the following paper. Your program will read three input images (A, A', B) and produce one output image (B'), where B' is like B in the same way that A' is like A.
Image Analogies
A. Hertzmann, C. Jacobs, N. Oliver, B. Curless, D. Salesin.
SIGGRAPH 2001 Conference Proceedings.

The following is a list of features that you may implement. You are required to implement the features in bold face -- the others are optional. In addition to implementing these features, you should submit an image generated by your program to the art contest. The winner will get extra credit and a note on the course web page.

Methods:

Applications:

To get started, you can use the code in (cos526_assn2.zip). This C++ code provides a simple image class (R2Image.cpp) that can read and write image files in bmp, jpg, and ppm formats and a simple console program (analogy.cpp) for parsing command line arguments and executing the algorithms. You will probably need to augment this program to include command line arguments of your own to turn on and off specific features and/or provide parameters for specific applications.


What to Submit

You should submit one zip file named cos526_assn2.zip (i.e. cos526_assn2.zip) with the following internal directory structure:

writeup.html should be an HTML document demonstrating the effects of the features you have implemented. There should be one "section" per feature. with a brief description of what you implemented and some images showing your results. For the "method" features (e.g., coherence search), you should include outputs of your algorithn with and without the feature enabled (with timings where appropriate). For the applications (e.g., texture synthesis), you should show results for at least two sets of inputs, preferably with inputs that you have created. In any case, your algorithms should work for the examples provided on the Image Analogies Project Page.

The src directory should have all code required to compile and link your program (including the files provided with the assignment), along with a Makefile to rebuild the code.

The Makefile script should contain the commands that generate all the images in the output directory that are included in the writeup. It should run without crashing when the user types make in the PUID_cos526_assn2/ directory (i.e., it should be possible to delete all the files in the output directory by typing make clean and then make to regenerate them).

You will want to run your algorithm on uncompressed images (not JPEG). However, you may submit images in JPEG format to save space. Also, to further save space, please remove binaries and backup files from the src directory (i.e., run make distclean (under Mac OS).


Useful resources