In a recent publication, we investigated the prospect of measuring the outer three-dimensional (3D) shapes of nano-scale atom probe specimens from tilt-series of images collected in the transmission electron microscope. For this purpose alone, an algorithm and simplified reconstruction theory were developed to circumvent issues that arise in commercial “back-projection” computations in this context. In our approach, we give up the difficult task of computing the complete 3D continuum structure and instead seek only the 3D morphology of internal and external scattering interfaces. These interfaces can be described as embedded 2D surfaces projected onto each image in a tilt series. Curves and other features in the images are interpreted as inscribed sets of tangent lines, which intersect the scattering interfaces at unknown locations along the direction of the incident electron beam. Smooth angular variations of the tangent line abscissa are used to compute the surface tangent intersections and hence the 3D morphology as a “point cloud”. We have published the explicit details of our alternative algorithm along with the source code entitled “stomo_version_1”. For this work, we have further modified the code to efficiently handle rectangular image sets, perform much faster tangent-line “edge detection” and smoother tilt-axis image alignment using simple bi-linear interpolation. We have also adapted the algorithm to detect tangent lines as “ridges”, based upon 2nd order partial derivatives of the image intensity; the magnitude and orientation of which is described by a Hessian matrix. Ridges are more appropriate descriptors for tangent-line curves in phase contrast images outlined by Fresnel fringes or absorption contrast data from fine-scale objects. Improved accuracy, efficiency and speed for “stomo_version_2” is demonstrated in this paper using both high resolution electron tomography data of a nano-sized atom probe tip and simulated absorption-contrast images.
Program summary
Program title: STOMO version 2
Catalogue identifier: AEFS_v2_0
Program summary URL:http://cpc.cs.qub.ac.uk/summaries/AEFS_v2_0.html
Program obtainable from: CPC Program Library, Queenʼs University, Belfast, N. Ireland
Licensing provisions: Standard CPC licence, http://cpc.cs.qub.ac.uk/licence/licence.html
No. of lines in distributed program, including test data, etc.: 2854
No. of bytes in distributed program, including test data, etc.: 23 559
Distribution format: tar.gz
Programming language: C/C++
Computer: PC
Operating system: Windows XP
RAM: Scales as the product of experimental image dimensions multiplied by the number of points chosen by the user in polynomial fitting. Typical runs require between 50 Mb and 100 Mb of RAM.
Supplementary material: Sample output files, for the test run provided, are available.
Classification: 7.4, 14
Catalogue identifier of previous version: AEFS_v1_0
Journal reference of previous version: Comput. Phys. Comm. 181 (2010) 676
Does the new version supersede the previous version?: Yes
Nature of problem: A local electron tomography algorithm of specimens for which conventional back projection may fail and or data for which there is a limited angular range (which would otherwise cause significant ‘missing-wedge’ artefacts). The algorithm does not solve the tomography back projection problem but rather locally reconstructs the 3D morphology of surfaces defined by varied scattering densities.
Solution method: Local reconstruction is effected using image-analysis edge and ridge detection computations on experimental tilt series to measure smooth angular variations of surface tangent-line intersections, which generate point clouds decorating the embedded and or external scattering surfaces of a specimen.
Reasons for new version: The new version was coded to cater for rectangular images in experimental tilt-series, ensure smoother image rotations, provide ridge detection (suitable for sensing phase-contrast Fresnel fringes and other fine-scale structures), faster/larger kernel edge detection and also greatly reduce RAM usage. Specimen surface normals are also explicitly computed from tangent-line and edge intersections, providing new information for potential use in point cloud rendering. Hysteresis thresholding implemented in the version 1 edge-detection algorithm provided only sparse edge-linking. Version 2 now implements edge tracking using recursion to fully link the edges during hysteresis thresholding. Furthermore in version 1 the minimum number of fitted polynomial points (specified in the input file) was not correctly imposed, which has been fixed for version 2. Most of these changes increase the accuracy of 3d morphology surface-tomography reconstructions by facilitating the use of more/finer tilt angles and experimental images of increased spatial-resolution. The ridge detection was incorporated to specifically improve the reconstruction of internal specimen morphology.
Summary of revisions:
•
Included Hessian() function to compute 2nd order spatial derivatives of image intensities (operates in the same fashion as the previous and existing Sobel() function).
•
Changed convolve_Gaussian() function to alternatively use successive 1D convolutions (rather than cumbersome 2D summations implemented in version 1), resulting in a large increase in computational speed without any loss in accuracy. The convolution kernel size was hence widened to three times the full width half maximum of the Gaussian filter to improve scale-space selection accuracy.
•
A ridge detection option was included to compute edge maps sensitive to ridges, rather than edges, using elements from a Hessian matrix; the eigenvalues of which were used to define ridge direction for Canny-type hysteresis thresholding. Function edge_detect_Canny() was also altered to pass the gradient-direction maps (from either Hessian or Sobel based operators) in and out of scope for computation of surface normals; thereby enabling the output of both point-cloud and corresponding unstructured vector-field surface descriptors.
•
Function rotate_imgs() was changed to incorporate basic bi-linear interpolation for improved tilt-axis alignment of the entire tilt series in exp_data.dat. Smoother and more accurate edge maps are thereby produced.
•
Algorithm convert_point_cloud_to_tomogram() was created to output the tomogram 3d_imgs.dat in a more memory efficient manner. The function shell_sort(), adapted from numerical recipes in C, was also coded for this purpose.
•
The new function compute_xyz() was coded to calculate point-clouds and tomogram surface normals using information from single tilt images, as opposed to the entire stack. This function is hence used iteratively throughout the reconstruction as each tilt image is analysed in succession.
•
The new function reconstruct_local() is the heart of stomo_version_2.cpp. the main() source code in stomo_version_1.cpp has been rewritten here to process experimental images and edge maps one at a time, using a buffered 3d array of dimensions dictated solely by the number of tilt images required for the local SVD fit of the angular variations. These changes (along with similar iterative file writing) have been made to vastly reduce memory usage and hence allow higher spatial and angular resolution data sets to be analysed without recourse to high performance computing resources.
•
The input file has been simplified by removing the ‘slices’ and ‘channels’ settings (used in version 1 for crude image binning), which are now equal to the respective numbers of image rows and columns.
•
Every summation over image rows and columns has been checked to enable the analysis of rectangular images without error. For images of specimens with high aspect-ratios, such as narrow tips, these fixes allow significant reductions in computation time and memory usage.
•
Some arrays in the source code were not appropriately zeroed in version 1, causing reconstruction artefacts in some cases. These problems have now been fixed.
•
Fixed an if-statement to correctly impose the minimum number of fitted polynomial points, thereby reducing noise in the reconstructed data.
•
Implemented proper edge linking in the hysteresis thresholding code for Canny edge detection.
Restrictions: The input experimental tilt-series of images must be registered with respect to a common single tilt axis with known orientation and position.
Running time: For high quality reconstruction, 2–5 min.
[1]
B. M. Fulk.
MATH
,
1992
.
[2]
G. G. Stokes.
"J."
,
1890,
The New Yale Book of Quotations.
[3]
M. Graef,et al.
Vector field electron tomography of magnetic materials: theoretical development.
,
2008,
Ultramicroscopy.
[4]
E. T. Quinto,et al.
Local Tomography in Electron Microscopy
,
2008,
SIAM J. Appl. Math..
[5]
S. Ringer,et al.
Effects of cold work on precipitation in Al-Cu-Mg-(Ag) and Al-Cu-Li-(Mg-Ag) alloys
,
1995
.
[6]
P. Midgley,et al.
3D electron microscopy in the physical sciences: the development of Z-contrast and EFTEM tomography.
,
2003,
Ultramicroscopy.
[7]
Nixon,et al.
Feature Extraction & Image Processing
,
2008
.
[8]
D. Jaeger,et al.
3-D Cross-Correlation of Atom Probe and STEM Tomography
,
2008,
Microscopy and Microanalysis.
[9]
P. Midgley,et al.
Electron Tomography Imaging and Analysis of γ′ and γ Domains in Ni‐based Superalloys
,
2008
.
[10]
S. Ringer,et al.
Electron tomography using a geometric surface-tangent algorithm: Application to atom probe specimen morphology
,
2009
.
[11]
P ? ? ? ? ? ? ? % ? ? ? ?
,
1991
.
[12]
Eric Todd Quinto,et al.
Electron lambda-tomography
,
2009,
Proceedings of the National Academy of Sciences.
[13]
R A Sayle,et al.
RASMOL: biomolecular graphics for all.
,
1995,
Trends in biochemical sciences.
[14]
J. Frank.
Electron tomography : methods for three-dimensional visualization of structures in the cell
,
2005
.
[15]
Anthony Papagiannis.
Intern
,
2010,
BMJ : British Medical Journal.
[16]
Ilke Arslan,et al.
Towards better 3-D reconstructions by combining electron tomography and atom-probe tomography.
,
2008,
Ultramicroscopy.
[17]
J. E. Murphy,et al.
Nanoparticle shape and configuration analysis by transmission electron tomography
,
2008,
Journal of microscopy.
[18]
Pawel Podsiadlo,et al.
Characterization of surface topography of wear particles by SEM stereoscopy
,
1997
.
[19]
Tony Lindeberg.
Edge Detection and Ridge Detection with Automatic Scale Selection
,
2004,
International Journal of Computer Vision.
[20]
Rafal E. Dunin-Borkowski,et al.
Nanoscale analysis of three-dimensional structures by electron tomography
,
2006
.
[21]
D. Paganin,et al.
Electron tomography of electromagnetic fields, potentials and sources
,
2005
.
[22]
C. Kübel,et al.
Recent Advances in Electron Tomography: TEM and HAADF-STEM Tomography for Materials Science and Semiconductor Applications
,
2005,
Microscopy and Microanalysis.
[23]
F. Hofer,et al.
Improved imaging of secondary phases in solids by energy-filtering TEM
,
1996
.
[24]
Timothy C. Petersen,et al.
An electron tomography algorithm for reconstructing 3D morphology using surface tangents of projected scattering interfaces
,
2010,
Comput. Phys. Commun..
[25]
John F. Canny,et al.
A Computational Approach to Edge Detection
,
1986,
IEEE Transactions on Pattern Analysis and Machine Intelligence.
[26]
Satoshi Hata,et al.
Crack tip dislocations revealed by electron tomography in silicon single crystal
,
2008
.
[27]
Z. Saghi,et al.
Electron tomography of regularly shaped nanostructures under non‐linear image acquisition
,
2008,
Journal of microscopy.
[28]
P. Midgley,et al.
High-Resolution Three-Dimensional Imaging of Dislocations
,
2006,
Science.
[29]
J. E. Hilliard,et al.
Quantitative analysis of scanning electron micrographs
,
1972
.
[30]
P. Midgley,et al.
Quantitative electron holographic tomography for the 3D characterisation of semiconductor device structures.
,
2008,
Ultramicroscopy.
[31]
R. Leapman,et al.
Three-dimensional distributions of elements in biological samples by energy-filtered electron tomography.
,
2004,
Ultramicroscopy.
[32]
A simple concept for better alignment and simplified operation of a transmission electron microscope
,
1993
.
[33]
G. Stachowiak.
Numerical characterization of wear particles morphology and angularity of particles and surfaces
,
1997
.
[34]
Pawel Podsiadlo,et al.
3-D imaging of surface topography of wear particles found in synovial joints
,
1999
.