Depth from Focus

From MMVLWiki
(Difference between revisions)
Jump to: navigation, search
m (Demonstration)
m
 
(6 intermediate revisions by one user not shown)
Line 1: Line 1:
{|align="right"
 
|-
 
|[[Image:Focussetreconstruction.png|thumb|240px|right|Conference article [http://vision.eng.shu.ac.uk/jan/MechRob-paper.pdf Focus set based reconstruction of micro-objects]]]
 
|-
 
|[[Image:ElsevierMicroVision.png|thumb|240px|right|Journal article [http://dx.doi.org/10.1016/j.imavis.2006.03.009 Computer vision methods for optical microscopes]]]
 
|-
 
|}
 
 
=Depth from Focus=
 
=Depth from Focus=
 
==3D surface metrology==
 
==3D surface metrology==
Line 54: Line 47:
  
 
==Download==
 
==Download==
The software for estimating height-maps and images with extended depth-of-field is available for free (under the LGPL)! You first need to install [[Mimas_Announcement_Archive#Mimas-2.0|version 2.0]] of the [[Mimas|Mimas Real-Time Computer Vision Library]] to be able to compile and run [http://vision.eng.shu.ac.uk/jan/depthoffocus-0.1.tar.bz2 depthoffocus-0.1] (652 kByte). The software also comes with sample files to generate photo-realistic 3D-reconstruction using [http://www.povray.org/ POVRay]!
+
===Old C++ Implementation===
 +
The software for estimating height-maps and images with extended depth-of-field is available for free (under the LGPL)! You first need to install [[Mimas_Announcement_Archive#Mimas-2.0|version 2.0]] of the [[Image:Mimasanim.gif|40px]] [[Mimas|Mimas Real-Time Computer Vision Library]] to be able to compile and run [http://vision.eng.shu.ac.uk/jan/depthoffocus-0.1.tar.bz2 depthoffocus-0.1] (652 kByte). The software also comes with sample files to generate photo-realistic 3D-reconstruction using [http://www.povray.org/ POVRay]!
 +
===New Ruby Implementation===
 +
[[Image:New.gif]] I've ported the program to [http://www.ruby-lang.org/ Ruby]. The new implementation is based on the [[Image:Hornetseye.png|40px]] [[HornetsEye]] Ruby-extension. It also requires [http://trollop.rubyforge.org/ TrollOp]. You can copy-and-paste the source code from the '''[http://www.wedesoft.demon.co.uk/hornetseye-api/files/stack-txt.html depth from focus example]''' page. The source code also comes with the [[HornetsEye]] source package.
  
 
=See Also=
 
=See Also=
Line 61: Line 57:
 
=External Links=
 
=External Links=
 
* Publications
 
* Publications
** J. Wedekind: [http://digbib.ubka.uni-karlsruhe.de/volltexte/1872002 Fokusserien-basierte Rekonstruktion von Mikroobjekten]
 
** J. Wedekind: ''[http://vision.eng.shu.ac.uk/jan/MechRob-paper.pdf Focus set based reconstruction of micro-objects]''
 
 
** M. Boissenin, J. Wedekind, A.N. Selvan, B.P. Amavasai, F. Caparrelli, J.R. Travis: [http://dx.doi.org/10.1016/j.imavis.2006.03.009 Computer vision methods for optical microscopes]
 
** M. Boissenin, J. Wedekind, A.N. Selvan, B.P. Amavasai, F. Caparrelli, J.R. Travis: [http://dx.doi.org/10.1016/j.imavis.2006.03.009 Computer vision methods for optical microscopes]
 +
** J. Wedekind: [http://vision.eng.shu.ac.uk/jan/MechRob-paper.pdf Focus set based reconstruction of micro-objects]
 
* Further Reading
 
* Further Reading
 
** [http://en.wikipedia.org/wiki/Anaglyph_image Wikipedia article on anaglyph images]
 
** [http://en.wikipedia.org/wiki/Anaglyph_image Wikipedia article on anaglyph images]
** [http://www.mrt.uni-karlsruhe.de/hz_prj1.php Depth-from-focus applied in forensic science, MRT Karlsruhe]
 
 
** Ishita De, Bhabatosh Chanda, Buddhajyoti Chattopadhyay: [http://dx.doi.org/10.1016/j.imavis.2006.04.005 Enhancing effective depth-of-field by image fusion using mathematical morphology]
 
** Ishita De, Bhabatosh Chanda, Buddhajyoti Chattopadhyay: [http://dx.doi.org/10.1016/j.imavis.2006.04.005 Enhancing effective depth-of-field by image fusion using mathematical morphology]
 
* Focus stitching software [http://www.hadleyweb.pwp.blueyonder.co.uk/ CombineZ5] and some [http://www.janrik.net/insects/ExtendedDOF/LepSocNewsFinal/EDOF_NewsLepSoc_2005summer.htm impressive examples by Rik Littlefield].
 
* Focus stitching software [http://www.hadleyweb.pwp.blueyonder.co.uk/ CombineZ5] and some [http://www.janrik.net/insects/ExtendedDOF/LepSocNewsFinal/EDOF_NewsLepSoc_2005summer.htm impressive examples by Rik Littlefield].
 
* [http://hirise.lpl.arizona.edu/anaglyph/index.php NASA anaglyph images of Mars]
 
* [http://hirise.lpl.arizona.edu/anaglyph/index.php NASA anaglyph images of Mars]
 
* [http://www.youtube.com/results?search_query=yt3d%3Aenable%3Dtrue 3D videos on Youtube]
 
* [http://www.youtube.com/results?search_query=yt3d%3Aenable%3Dtrue 3D videos on Youtube]
 +
* [http://www.heliconsoft.com/ Helicon] proprietary focus stitching software
  
 
{{Addthis}}
 
{{Addthis}}

Latest revision as of 17:00, 17 March 2010

Contents

[edit] Depth from Focus

[edit] 3D surface metrology

  • You need to grab the focus stack with your microscope and digital camera.
  • The results will be even better, if the illumination optics of the microscope can project a pattern.
  • Non-destructive measurement of surface profiles
  • With our experimental settings we observed (of course the result will depend on the quality of the microscope)
    • Vertical resolution <math>\ge 0.2\ \mu m</math> (depending on aperture-size, magnification, projection-pattern and the surface properties of the object).
    • Lateral resolution <math>\ge 2\ \mu m</math> (depends).
  • Open Source (you are free to improve the code yourself if you redistribute it).

In general one can say: The lower the depth of field, the higher the resolution of the reconstruction. With high magnification (assuming constant numerical aperture) the resolution of the reconstruction goes up. The trade-off is that the reconstruction will cover a smaller area. This can be overcome by lateral stitching (e.g. cogwheel below).

[edit] Demonstration

Here are some typical microscope images (Surfi-Sculpt refers to objects, which has been shaped using a power beam).

First surfi-sculpt object, Leica DM LAM
Second surfi-sculpt object, Leica DM LAM
Piece of Suevit (enamel like material from meteorite impact) from the Nördlinger Ries, Leica DM RXA
Micro-camera image of a hair on top of a laser printout
Surface of 10-pence coin, Leica DM LAM

Using a focus-stack one can compute images with extended depth of focus:

Extended depth of view for first object
Extended depth of view for second object
Extended depth of view for Suevit (fringes have been removed manually)
Extended depth of view for the hair
Extended depth-of-field image showing part of the 10-pence coin (compare with 1.39 MByte video of focus stack)

If the surface can be illuminated properly, one can even do a 3D-reconstruction of the surface:

3D reconstruction of first object (742kB video)
3D reconstruction of second object (725kB video)
[[Image:suevit20.png 180px|3D reconstruction of suevit (1.4MB video)]]
3D reconstruction of hair (1.4MB video)
3D reconstruction of 10-pence coin surface. The profile is amplified 5 times (1.0 MByte video)
Red-cyan anaglyph image of first object (2.0MB video)
Extended depth of field image for a piece of sugar (compare with 532 kByte video of focus stack)
Extended depth of field image of glass fibers (compare with 1.09 MByte video of focus stack)
Reconstruction of 0.6 mm cogwheel using multiple focus sets
Icing of a cake as seen under the microscope
Optical microscope image of tungsten tip
Optical image of tungsten tip (high magnification)

As the idea for the algorithm was fixed already, it was possible to implement the algorithm as a command-line tool in less than 4 days, using existing Mimas-software (exspecially the operators for boost::multi_array).

As this is a "quick hack", there's still lots of space for improvements.

[edit] Download

[edit] Old C++ Implementation

The software for estimating height-maps and images with extended depth-of-field is available for free (under the LGPL)! You first need to install version 2.0 of the Mimasanim.gif Mimas Real-Time Computer Vision Library to be able to compile and run depthoffocus-0.1 (652 kByte). The software also comes with sample files to generate photo-realistic 3D-reconstruction using POVRay!

[edit] New Ruby Implementation

New.gif I've ported the program to Ruby. The new implementation is based on the Hornetseye.png HornetsEye Ruby-extension. It also requires TrollOp. You can copy-and-paste the source code from the depth from focus example page. The source code also comes with the HornetsEye source package.

[edit] See Also

[edit] External Links

Bookmark and Share

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox