Depth from Focus

From MMVLWiki
(Redirected from Mimas Depth from Focus)
Jump to: navigation, search

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