Computer Sciences Dept.

CS 534: Computational Photography

Fall 2016


CS 534 Homework Assignments



  • General Information
    • All homework assignments, both programming and written problems, must be done individually unless explicitly stated otherwise. Cheating and plagiarism will be dealt with in accordance with University procedures related to Academic Integrity. Hence, for example, code for programming assignments must not be developed in groups, nor should code be shared, and code should not be obtained from anyone or anywhere, including the Web. You are encouraged to discuss with your peers, the TA or the instructor ideas, approaches and techniques broadly, but not at a level of detail where specific implementation issues are described by anyone. If you have any questions on this, ask the instructor before you act.

    • Questions and answers related to the homework assignments should be posted to Piazza. Please follow posts there to clarify issues in the assignments.

    • How to hand in a homework assignment
      • Electronically hand in all parts of each homework to the hand-in folder in Moodle associated with each assignment. This includes answers to written questions, MATLAB code written, and any other files such as images.

        Be sure to also save a separate copy of your completed code and result images in your own private directory as a backup to the copy you put in the hand-in directory. Do not alter your own copy after you turn it in so that the date on the file is the same as the date of what you hand in.

      • Note: All parts of each assignment are all due on the due date at the due time.

    • Late Penalties:
      All assignments are due on the due date by 11:59 p.m. One (1) day late, defined as a 24-hour period from 11:59 p.m. to 11:59 p.m. the next day (weekday or weekend), will result in 10% of the maximum points for the assignment deducted. So, for example, if an assignment is due on a Wednesday and it is handed in any time on Thursday, a 10% penalty will be deducted. Two (2) days late, 25% off; three (3) days late, 50% off. No homework can be turned in more than three (3) days late regardless of any free late days being used. A total of three (3) free late days may be used during the course so that no late penalty is deducted. Free late days will be used automatically for the first late days incurred.

    • Corrections of any grading problems must be resolved within one week after a homework is handed back.

  • Homework #1: Try out some Computational Photography Apps (Due: Thursday, September 15)

  • Homework #2: Image Processing in MATLAB (Due: Tuesday, September 27)
    • HW #2
    • test.zip file containing the test images for all problems
    • Histogram Equalization sample results
    • Demosaicing sample results
    • Color Transfer sample results
    • Readings
      • Sections 3.1, 3.2, and 10.3.1 in the Szeliski book
      • "Color Transfer between Images" by E. Reinhard, M. Ashikhmin, B. Gooch, and P. Shirley, Computer Graphics and Applications, September/October 2001. Focus on the section "Statistics and color correction."
      • If you need a tutorial on linear algebra and matrix operations, see, for example, Linear Algebra Review and Reference by Z. Kolter and C. Do, 2012
    • Hand-in Instructions
      Put everything (code and images) for each problem in a separate folder. For example, for problem 1 put everything in a folder called "P1". Then put all three folders together in a SINGLE zip file called <NetID username>-HW2.zip where "<NetID username>" is replaced by your NetID username. Copy this zip file into the Moodle dropbox for HW2.

  • Homework #3: Image Resizing using Seam Carving (Due: Tuesday, October 11)
    • HW #3
    • Class sample results
    • Read the paper Seam Carving for Content-Aware Image Resizing by S. Avidan and A. Shamir, Proc. SIGGRAPH, 2007. A video demo of the method is viewable on YouTube.
    • Run your code on the image union-terrace.jpg with the arguments given in the assignment. In addition, find on the web or take your own photos to test your code using at least 2 additional test images, one which shows a good result and one that shows a poor result.
    • Hand-in Instructions
      Put everything (i.e., code, images, and answers to the questions in the Experiments section of the assignment) in a SINGLE zip file called <your NetID username>-HW3.zip and copy this zip file into the Moodle dropbox for HW #3.

  • Homework #4: Making Panoramas (Due: Thursday, October 27)

  • Homework #5: Your Own Project

  • MATLAB References

  • Running MATLAB and other Programs Remotely
    For students who are Engineering majors or are taking a course this semester in Engineering, you may be able to get MATLAB for a home machine via a tethered copy in CAE. For more information, see MATLAB tethered installation for Windows or MATLAB tethered installation for Mac OS X or MATLAB tethered installation for Linux.

    If you want to run MATLAB or any other program installed on one of the CS Department Linux machines remotely from your own computer at home, here is how you can do it:

    • From any Mac OS or Unix OS machine:
      1. Type in the following command in a terminal window on your laptop:
             ssh -X <your-cs-login>@best-linux.cs.wisc.edu
        
      2. You will be prompted to enter your CS login and password and then a secure connection will be started on a CS Linux workstation.
      3. Run MATLAB by typing: "matlab &"
    • From any Windows machine:
      1. Download PuTTy.exe from http://www.chiark.greenend.org.uk/~sgtatham/putty/
      2. Download Xming from http://sourceforge.net/projects/xming/files/Xming/
      3. Download the Xming fonts package from http://sourceforge.net/projects/xming/files/Xming-fonts/
        Go to the directory with the latest version and download the setup.exe file
      4. Install Xming and the fonts package in the same folder by double-clicking the .exe files that you downloaded in Steps 2 and 3.
      5. Go to the Start Menu and run XMing. If you are using a firewall, it will ask if you want to unblock it. You don't need to. Look for the "X" icon in your system tray. Hover the mouse over it: it should say something like "Xming server - 0:0". The last bit should be "0:0", but if it's not, pay attention to that and use it in the subsequent steps as directed.
      6. Run putty.exe, the file that you downloaded in Step 1.
      7. In the window that pops up under host name, enter "<your-cs-login-name>@best-linux.cs.wisc.edu". Then, on the left, click on the Connection/SSH/X11 sub-panel. It'll have a few options. Check "Enable X11 Forwarding", and in the "X display location", put "localhost:0:0" in the box (unless you didn't have "0:0" in Step 5 above: then use "localhost:x:y", where "x:y" is whatever you saw on the icon). Leave the radio button on "MIT-Magic-Cookie-1". Now click back to the main "Session" panel on the left. Put a name (any name like "cs") in the text box in the middle right below "Saved Sessions". Click the "Save" button. From now on, you can double click the connection in the list box when you want to connect; you don't need to configure these settings every time. Press "Open" to start PuTTY. Put in your CS assigned username and password. Now run the command xeyes &. You should get a big pair of googly-eyes that follows the cursor around. It works!
      8. Type "matlab &" to run MATLAB.

 
CS 534 | Department of Computer Sciences | University of Wisconsin - Madison