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 |
06/10/2010 |
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 |
03/30/2010 |
Constructs n-dimensional trajectories from a scrambled list of particle coordinates determined at discrete times (e.g. in consecutive video frames). |
| msd3.pro |
08/07/2011 |
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 |
| rayleighsommerfeld.pro |
10/20/2010 |
Computes Rayleigh-Sommerfeld back-propagation of a normalized hologram of the type measured by digital video microscopy |
| 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. |
| spheretool.pro |
12/22/2010 |
Interactively find reasonable fitting parameters for digital holographic microscopy images of colloidal spheres. |
| fitspheredhm.pro |
11/09/2011 |
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. |
| spheredhm.pro |
11/03/2010 |
Computes holographic microscopy image of a sphere immersed in a transparent medium. |
| 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. |
| 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. |
| 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 |
01/24/2009 |
Deinterlaces an (interlaced) image. |
| aziavg.pro |
02/03/2009 |
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. |
| utility.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: Wed Nov 16 14:07:42 EST 2011