Downloadable Software
- The routines on this page are written in
IDL, the
Interactive Data Language.
- They are distributed under the terms of
the GNU General
Public License.
 |
Particle Tracking Routines |
| Program |
Last Modified |
Purpose |
| bpass.pro |
09/10/2010 |
Implements a real-space bandpass filter which suppress pixel noise and long-wavelength image variations while retaining information about features of a characteristic size. |
| fastfeature.pro |
07/18/2012 |
Find the centroids of disk-like features in an image quickly. |
| feature.pro |
06/10/2010 |
Finds and measures roughly circular 'features' within an image. |
| featuretool.pro |
06/10/2010 |
Graphical interface for setting parameters for FEATURE. |
| track.pro |
05/25/2012 |
Constructs n-dimensional trajectories from a scrambled list of particle coordinates determined at discrete times (e.g. in consecutive video frames). |
| circletransform.pro |
07/16/2012 |
Performs a transform similar to a Hough transform for detecting circular features in an image. |
| ct_hitormiss.pro |
07/18/2012 |
Identify pixels in an image that are transformed to a particular feature by circletransform |
| msd3.pro |
07/27/2012 |
Computes time evolution of the mean-square displacement of a time series, including estimates of the variance. |
| trapcal.pro |
06/10/2010 |
Determine the stiffness of an optical trap for a particular probe particle and also the particle's viscous drag coefficient from measurements of the particle's thermally driven trajectory. |
| tracking.tgz | | Gzipped tar archive |
|
Holographic Optical Trapping Routines |
| Program |
Last Modified |
Purpose |
| holo_init.pro |
06/10/2010 |
Set up the HOLO_COMMON common block for HOT applications. |
| fastphase.pro |
12/30/2010 |
Calculates the phase hologram encoding a desired trapping pattern by superposing fields as fast as possible. |
| dsphase.pro |
06/10/2010 |
Calculates the phase hologram encoding a desired optical intensity pattern using superposition followed by direct search refinement. |
| vortex.pro |
06/10/2010 |
Returns a phase hologram encoding a helical mode. |
| maketheta.pro |
06/10/2010 |
Creates an array whose values are the angles in radians relative to the x-axis of each pixel in the array. |
| makerho.pro |
06/10/2010 |
Creates an array whose values are the distances from the center of each pixel in the array. |
| hot.tgz | | Gzipped tar archive |
 |
Holographic Video Microscopy Routines |
These routines are useful for analyzing holographic video microscopy
images of colloidal spheres. They fall into two broad categories.
The first uses Rayleigh-Sommerfeld back-propagation to reconstruct the
three-dimensional light field scattered by the sample.
This is a general, but approximate, approach to hologram analysis.
The second fits holographic snapshots to predictions
based on the Lorenz-Mie theory of light scattering. This approach
can extract extremely precise information from holographic snapshots,
but requires an accurate model for light scattering by the object
of interest. For colloidal spheres, fits to Lorenz-Mie theory yield
each sphere's position in three dimensions,
often with nanometer resolution, its radius with nanometer resolution,
and its complex refractive index with part-per-thousand precision. See the
tutorial to learn how to get started with SPHERETOOL, which is
a graphical interactive front end to the entire software suite.
- If you use the Rayleigh-Sommerfeld software in published research,
the appropriate citation is
S. Lee and D. G. Grier,
"Holographic microscopy of holographically trapped three-dimensional
structures,"
Optics Express
15, 1505-1512 (2007).
- If you use the Lorenz-Mie routines
(SPHERETOOL and friends) in published research, the
appropriate citation is
S. Lee, Y. Roichman, G. Yi, S. Kim, S. Yang, A. van Blaaderen, P. van Oostrum and D. G. Grier,
"Characterizing and tracking single colloidal particles
with video holographic microscopy",
Optics Express
15, 18275-18282 (2007).
- If, in addition, you make use of the GPU-accelerated version of
the software, the appropriate citation is
F. C. Cheong, B. Sun, R. Dreyfus, J. Amato-Grill, K. Xiao, L. Dixon and
D. G. Grier,
"Flow visualization and flow cytometry with holographic video
microscopy",
Optics Express
17, 13071-13079 (2009).
- The GPU-accelerated routines rely on the
GPULib, which provides
IDL bindings for CUDA-accelerated array operations.
GPULIB must be
downloaded and built separately.
- FITSPHEREDHM relies on Craig Markwardt's
MPFIT implementation of the Levenberg-Marquardt nonlinear
optimization algorithm.
- SPHERETOOL also uses Craig Markwardt's
PLOTIMAGE routine.
| Program |
Last Modified |
Purpose |
| spheretool.pro |
06/02/2012 |
Interactively find reasonable fitting parameters for digital holographic microscopy images of colloidal spheres. |
| dhmfeature.pro |
07/18/2012 |
Identify, locate and characterize spheres in normalized holographic video microscopy images. |
| sphere_coefficients.pro |
09/04/2011 |
Calculates the Mie scattering coefficients for a multilayered sphere illuminated by a coherent plane wave linearly polarized in the x direction. |
| refractiveindex.pro |
03/01/2012 |
Returns the real part of the refractive index of water as a function of the wavelength of light and the temperature |
| fitspheredhm.pro |
07/16/2012 |
Measure the radius, refractive index, and three-dimensional position of a colloidal sphere immersed in a dielectric medium by fitting its digital holographic microscopy (DHM) image to Mie scattering theory. |
| fitspheredhm1d.pro |
07/15/2012 |
Measure the radius, refractive index, and axial position of a colloidal sphere immersed in a dielectric medium by fitting its azimuthally averaged digital holographic microscopy (DHM) image to Mie scattering theory. |
| spheredhm.pro |
06/23/2012 |
Computes holographic microscopy image of a sphere immersed in a transparent medium. |
| dggdhmspheredhm__define.pro |
06/18/2012 |
This object uses Lorenz-Mie theory to compute the hologram of a sphere as would be recorded with in-line digital video microscopy. The Lorenz-Mie calculation is accelerated using GPULib. |
| spheredhmprofile.pro |
04/15/2008 |
Calculates the radial profile of the in-line hologram of a sphere, as obtained with digital holographic microscopy. |
| spherefield.pro |
04/06/2011 |
Calculates the complex electric field scattered by a sphere illuminated by a plane wave linearly polarized in the x direction. |
| sphericalfield.pro |
09/04/2011 |
Calculates the complex electric field defined by an array of scattering coefficients. |
| gpu_sphericalfield.pro |
06/28/2011 |
Calculates the electric field in a light scattering pattern defined by a set of Lorenz-Mie scattering coefficients. Uses gpulib for hardware acceleration. |
| rayleighsommerfeld.pro |
06/24/2012 |
Computes Rayleigh-Sommerfeld back-propagation of a normalized hologram of the type measured by digital video microscopy |
| rs1d.pro |
07/16/2012 |
Computes Rayleigh-Sommerfeld back-propagation of a normalized hologram along a specified axial line. |
| gpu_rayleighsommerfeld.pro |
11/18/2010 |
Computes Rayleigh-Sommerfeld back-propagation of a normalized hologram of the type measured by digital video microscopy. Uses GPUlib for hardware acceleration. |
| hvm.tgz | | Gzipped tar archive |
 |
Utility Routines |
| Program |
Last Modified |
Purpose |
| read_gdf.pro |
03/17/2010 |
Read in data files created by WRITE_GDF. |
| write_gdf.pro |
03/17/2010 |
Writes IDL-style data to disk in a format which can be read back in easily. |
| deinterlace.pro |
07/18/2012 |
Deinterlaces an (interlaced) image. |
| aziavg.pro |
07/17/2012 |
Average a two dimensional data set over angles about its center. |
| azistd.pro |
01/27/2009 |
Calcuate the standard deviation from the mean of a two dimensional data set, averaged over angles, as a function of radius from the center. |
| iqr.pro |
09/18/2010 |
Compute the inter-quartile range of a one-dimensional data set |
| kde.pro |
10/18/2011 |
Estimate the probability density underlying a set of discrete samples (measurements) using the kernel density estimator method. |
| akde.pro |
10/27/2011 |
Estimate the probability density underlying a set of discrete samples (measurements) using the adaptive kernel density estimator method. |
| utility.tgz | | Gzipped tar archive |
 |
IDLvideo NG |
IDLvideo NG is an
effort to provide IDL with video input capabilities based
on open-source software without requiring shared-object libraries.
It is based on the MPlayer
multimedia player, which it calls through IDL's SPAWN mechanism.
All video-reading capability is provided through
the DGGgrMPlayer object.
This interface has been tested on GNU/Linux and Mac OS X systems,
where it can acquire frame-accurate video in real time.
It may well work under cygwin. A native Windows port may be more
challenging.
| Program |
Last Modified |
Purpose |
| dgggrmplayer__define.pro |
09/24/2012 |
Uses mplayer and mencoder to read frames from a video file. |
| mplayer.pro |
07/05/2012 |
Simple resizable GUI movie player that demonstrates the capabilities of the DGGgrMPlayer object. |
| mp_ripper.pro |
07/06/2012 |
Rips a video file into individual image files, one for each frame. |
| video.tgz | | Gzipped tar archive |
 |
IDLvideo |
IDLvideo is a suite of routines for transferring video
data directly into IDL from video cameras or
multimedia files. It is based on the
OpenCV
library of Open Source Computer Vision routines, which
it calls through IDL's CALL_EXTERNAL mechanism.
Sources for the IDLvideo library are available
here.
The library has to be built and installed before the IDL routines
will work.
This interface has been tested on Ubuntu linux and MacOS systems,
where it can acquire frame-accurate video in real time.
In principle, it can be ported to Windows.
This is alpha-quality software, and the installation procedure
is particularly bare-bones.
| Program |
Last Modified |
Purpose |
| open_videofile.pro |
01/01/2011 |
Opens a video file for subsequent frame-by-frame reading. |
| open_videocamera.pro |
01/01/2011 |
Opens an OpenCV-compatible video camera for subsequent frame acquisition. |
| close_video.pro |
01/01/2011 |
Close a video stream that was opened with OPEN_VIDEOFILE. or OPEN_VIDEOCAMERA |
| is_videostream.pro |
06/10/2010 |
Check whether a variable is a video stream returned by OPEN_VIDEOFILE. |
| available_videoframe.pro |
01/01/2011 |
Determine whether a video frame is available on the video stream opened with OPEN_VIDEOFILE. |
| read_videoframe.pro |
01/01/2011 |
Read the next available video frame from a video stream opened with OPEN_VIDEOFILE. |
| idlsnap.pro |
12/29/2010 |
Grab one grayscale image from a a video file or from a frame grabber using the IDLvideo interface |
| playvideo.pro |
08/17/2010 |
Frame-by-frame renderings of a video file using IDL graphics |
| idlvideo.tgz | | Gzipped tar archive |
Contact Information
David G. Grier Department of Physics
Center for Soft Matter Research
(212) 998-3713 (voice) New York University
(212) 995-4016 (FAX) 4 Washington Place
david.grier@nyu.edu New York, NY 10003
Last Modified: Mon Sep 24 22:25:32 EDT 2012