Using Edge detection on Focal Plane to Extract scene depth information

By varying focus on a camera with a single focal plane and using edge detection we can generate what is effectivelly a 3D scan of the scene by using edge detection to pick the sharpest edges. Where this concept becomes more interesting is with the use of cameras which use clever optics to allow sumultaneous captures of an image at multiple focal planes. This is done by placing optics over the sensor photosites, see http://en.wikipedia.org/wiki/Lytro. Most cameras also have a facility for reporting back focal plane distance which is usually used to judge flash (speedlight) power.

This information can be added to current depth map generation algorthms to better improve quality. Further work will have to be done with respect to light sources and strong lighting reflections as these offer high contrast edges even when out of focus.

Everything below was shot with my Nikon SLR by manually changing focus and shooting at regular(ish) intervals. This is a proof of concept.

The GIF below was created by quickly putting together a script in MATLAB:


focus_depth.gif LCH_7334.png


These images were formed by compiling the edge traces of all prior shots:

ilab_depth1.jpg
ilab_depth3.jpg
ilab_depth2.jpg

5 Dec 2012