Giter Club home page Giter Club logo

lightfields's Introduction

LightField Photography

Please read the Lightfield Camera papers very carefully. http://graphics.stanford.edu/papers/CameraArray/

Digital refocusing using photos taken by an array of cameras is easy. If you compute an average of all the photos, the digital focus is at infinity. If you shift each photo cumulatively, e.g. shift each photo a pixel with respect to its immediate left neighbor, and then compute an average, the focus plane is closer. This simple shift+add strategy is sufficient to achieve reasonable refocusing effects.

Homework Assignment

For this assignment, you will be showing refocussing and see-thru effects by using multiple image lightfields. See examples at http://lightfield.stanford.edu/lfs.html (click on 'View Lightfield Online') http://lightfield.stanford.edu/aperture.html

(a) To start and test the code provided, you can use the photos from: http://web.media.mit.edu/~gordonw/SyntheticLightFields/DragonAndBunnies_camera.zip as input. Use only images along the horizontal translation. You will test your code on this dataset.

(b) For the assignment, you will use your own images. Translate a camera and take photos at fixed distance intervals (try 5-7 photos). Place the camera on a ruler for precise positioning. You are trying to imitate a camera array.

You will be doing all of this in MATLAB. Be sure to use high depth complexity, colorful, point specular (spherical) objects in your images.

Be creative with camera configurations, maybe with very large baseline or with a microscope.

You can also use unstrcutured positions and use a calibration target (or structure from motion or photosynth software) to find the positions. (More projects http://graphics.stanford.edu/projects/lightfield/ )

Tasks

Please modify and execute the code hosted above. You will NOT need to write huge blocks of code. Simply tweak the existing code as you see fit to perform the tasks below.

Part 1: Programmable focus and with your OWN images (60 pts): Using the attached MATLAB code, compute images with planes of focus at different depths (shift each photo by a specific amount successively and compute an average).

  • A) Digitally focus at infinity (simply take the average of all photos)
  • B) Digitally focus on back plane (simply shift some and average)
  • C) Digitally focus on front plane (simply shift more and average) This is the key part of this assignment: The Task B (Output 2) should demonstrate a see-thru effects.

Part 2: OPTIONAL Extra Credit (+8pts)

  • A) Implement these concepts as an Android app (upload your .apk file)

Part 3: OPTIONAL Additional Extra Credit (+2 each)

  • A) Find depth of each pixel using max-contrast operator
  • B) Show the see-thru effect by elminating foreground color pixels For rejecting a given plane, instead of taking average of 16 values, take the majority vote. Median of 16 values will work in some cases, but the most common value will be a more robust choice. If there is no clear majority, i.e. if the most common count is say below 5, set the pixel to black.
  • C) Compute images with variable depth of field (Use fewer photos picked from near the center position. Fewer photos means a larger depth of field.)
  • D) Compute images with slanted plane of focus (scheimpflug principle http://en.wikipedia.org/wiki/Scheimpflug_principle ) http://graphics.stanford.edu/papers/shear-warp/
  • E) Create new bokeh (point spread function)

Submission

MIT/Skoltech Students: Submit all output for each part above on Stellar (Label the file with the "Part" number, e.g. Part1a, Part1b, etc.). Also post your final images to the FB page.

Online Students: Post your final images to the FB Page

lightfields's People

Contributors

purirohan avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.