Assignment 1: Texture Synthesis
From CS294-69 Image Manipulation and Computational Photography Fa11
Assignment Due: Sep 26, 2011
The goal of this assignment is to implement one or more of the following papers on applications of texture syntehsis.
- Image Analogies. Aaron Hertzmann, Charles E. Jacobs ,Nuria Oliver, Brian Curless and David H. Salesin. SIGGRAPH 2001 (pdf)
- Region-Filling and Object Removal by Exemplar-Based Inpainting. Antonio Criminisi, Patrick Pérez, and Kentaro Toyama. CVPR 2004. (pdf)
- Video Textures. Arno Schoedl, Richard Szeliski, David H. Salesin, Irfan Essa. SIGGRAPH 2000 (pdf)
- PatchMatch: A Randomized Correspondence Algorithm for Structural Image Editing. Connelly Barnes, Eli Shechtman, Adam Finkelstein and Dan B Goldman. SIGGRAPH 2009 (pdf)
- Image Quilting for Texture Synthesis and Transfer. Alexei Efros and William Freeman. SIGGRAPH 2001. (pdf)
- Image Completion with Structure Propagation. Jian Sun, Lu Yuan, Jiaya Jia and Heung-Yeung Shum. SIGGRAPH 2005.(pdf)
- Synthesizing Structured Image Hybrids. Eric Risser, Charles Han, Rozenn Dahyot and Eitan Grinspun. SIGGRAPH 2010 (pdf)
Texture synthesis is a simple but useful idea that has found its way into a number of photo manipulation techniques. Your task is to implement one or more of the papers described above. While it is adequate to simply implement the ideas as described in the paper(s) it is worth thinking about how you might go beyond what is described in the paper(s). New research ideas sometimes come from developing addressing the following issues:
- Every technique has some limitations (well written papers usually describe some of them). Develop techniques to address one or more limitations.
- Sometimes different papers present different techniques for addressing the same problem (e.g. Image Analogies and Texture Transfer in the Image Quiting paper). Implement competing techniques and compare the strengths and weaknesses of them.
- It is sometimes possible to combine ideas from multiple papers to produce a new hybrid technique that addresses a new problem. Develop a new way to combine the texture synthesis techniques your have read about to solve a new problem.
If you work alone you are responsible for implementing at least 1 of the papers. If your work in a group of 2, you must implement at least 1 paper and address one of the issues raised above (in doing so you are likely to have to implement a second paper) or implement 2 papers. Groups of 3 must implement at least 2 papers and address one of the issues raised above.
Extra credit may be given at the discretion of the instructors based on the size of the group and the amount of work completed. But remember that you have two weeks to complete this assignment.
How to access Matlab
Using the username and password that we provide, you can log into the Windows PCs in 199 Cory or the Linux PCs in 330 Soda and run /share/b/bin/matlab from the command line. This will open Matlab for you. You can find more information on how to run Matlab on this MATLAB website.
We have Instructional licenses for the Image Processing Toolbox. It only runs on Instructional computers (a license requirement). There are instructions for the students on the MATLAB website.
Michael Tao put together a tutorial on how to use mex and MATLAB for image processing. The tutorial does a simple square blur. You might find it useful for this or the following assignments. You can download the tutorial files here. Thanks Michael!
How to create your wiki page
Begin by creating a new wiki page for this assignment. The title of the page should be of the form:
Replace Firstname and Lastname with your real first and last names. If you worked in a group use the following format instead:
You can create the page by entering a url of the following form into your browser:
To upload images to the wiki, first create a link for the image of the form [[Image:image_name.jpg]] (replacing image_name.jpg with a unique image name for use by the server). This will create a link you can follow that will then allow you to upload the image. Alternatively, you can use the "Upload file" link in the toolbox to upload the image first, and then subsequently create a link to it on your wiki page.
Add a link to your finished assignment here. The page you create should include images and a description explaining what you did to create the images. Please make sure that there is enough detail on the page for us to understand your results. But also try to be succinct.
Once you are finished editing the page, add a link to it here with full name as the link text. The wiki syntax will look like this: *[[A1-FirstnameLastname|Firstname Lastname]]. Hit the edit button for this section to see how I created the link for my name.
- Maneesh Agrawala
- Yeon Jin Lee
- Michael Tao
- Jeff Donahue
- Wesley Willett
- Viraj Kulkarni
- Soham Uday Mehta
- Hong Wu
- Stacy Hsueh
- Vera Dadok
- Nancy Wang
- Dai Bui
- Yin-Chia Yeh
- Tim Althoff
- Aaron Eidelson
- Jiamin Bai
- Dustin Shean
- Eileen Bai
- Philip Ly
- Sean Arietta
- Rohan Nagesh
- Nikhil Naikal
- Ricardo Garcia
- Armin Samii, Sally Ahn
- Vasily Volkov
- Moeka Takagi
- Robin Gaestel