Project 1
There are two optional topics for Project 1. You can select either of them.
Option 1: Color transfer between images (100 points)
Option 2: Filter banks (100 points)
Option 3: Hybrid image (100 points)

Color transfer between images
The goal of this project is to implement the following paper [1] and develop a system that can transfer the color characteristics from one image to another. This system can be used to correct color in an image by choosing an appropriate source image and transferring its color characteristics to the target one.   

Testing: The images from [1] can be extracted to test your system.

Grading policy:
1. Implement the basic color transfer technology in the l color space. (90 points)
2. Test the effects of color spaces on color transfer. You need to try at least another two color spaces.  (10 points)

[1] Color transfer between images. Erik Reinhard, Michael Ashikhmin, Bruce Gooch, and Peter Shirley.
IEEE Computer Graphics and Applications.21(5), 2001: 34 - 41.

Filter banks
Filtering is a basic image processing operator. A wide range of filtering algorithms have been developed. The goal of this project is to implement a filter bank that provides a list of filters. You can use OpenCV as well as other online code resources for this project.

Grading policy:

1. Implement a GUI program where a user can view the input and output image. You can pick any GUI API library as long as it works for you. FLTK and QT are great choices. A simple tutorial for using FLTK within Visual Studio 2008, 2010, and 2012,  is provided. (25 points)

2. Add Box Filter, Gaussian filter, Median Filter, Bilateral Filter, and Canny Edge detector into your system. (50 points, 10 points for each filter)
3. Add non-local mean filter [2] (10 points. Note, OpenCV provides an implementation for this filter too.)
4. Add more de-noising or other filters (10 points for the first and 5 points for the second extra filter. You can add at most two more filters. You can look into the recent computer vision or graphics papers to find more filters. You can integrate the online code into your system.)
[2] A non local algorithm for image denoising. A. Buades, B. Coll, J.M. Morel
IEEE Computer Vision and Pattern Recognition 2005, Vol 2, pp: 60-65, 2005.
[3] Computer Vision paper list:
[4] Computer Graphics paper list:

Hybrid Image Synthesis
The goal of this project is to develop a hybrid image synthesis system. You can design your own algorithm or implement the following paper [5]. Your system needs to create similar results to [5]. In particular, the hybrid image from your system should provide a viewing experience that the perceived image changes with the viewing distance. (100 points)

[5] A. Oliva, A. Torralba, P.G. Schyns (2006). Hybrid Images. ACM Transactions on Graphics, ACM Siggraph, 25-3, 527-530..

Submission and Grading:

This project is due 01/30/2017. The project report needs to be converted in a pdf file and be submitted to before 1:00 pm on 01/30/2017. In the project report, you need to demonstrate the inputs and outputs. You need to explain the algorithm settings for each result. You do not need to describe the algorithms themselves.

You need to demonstrate your project to the instructor in the class room on 01/30/2017. The project will be graded according to the alphabetic order of your last name, starting from "a".
If you do not have a laptop, you can demonstrate the project in the CS Windows or Linux lab. 
If you cannot make the class on 01/30/2017, you can contact the instructor to pick some time before the project due day. 

Late submission policy:

Late submission/project grading will be accepted until 5pm 02/01/2017. But it will be penalized according to the following equation:
G=G0*(1-n*0.05/24), where n is the number of hours delayed, G0 is the raw score, and G is your final score.