untethered atom · TEM

Quantitative HAADF

A HAADF image is a number at every column. Normalise it and the number means something.

Normalise an annular dark-field image to the detector's dark level and the probe current so every pixel is a fraction of the beam, find and refine the atomic columns, integrate each over a disc or its Voronoi cell, read the statistics and the two-class split, and compare the column fractions with the thickness series exported from the SAED simulator's STEM tab to estimate the foil thickness and the Z-contrast exponent.

Try this: change measure in the Columns card from fitted peak amplitude to Voronoi cell mean, and watch the histogram and the two classes change.

Image
Column intensities

Grey levels become a fraction

Normalising to the detector with the beam blanked and with the full probe on it turns each pixel into the fraction of the beam that reaches the detector (LeBeau and Stemmer).

Finding the columns

Columns are local maxima of a smoothed copy. Each is refined by a Gaussian fit that subtracts its neighbours, so the two columns of a dumbbell do not pull each other inward. The fit also finds the flat background under each column, and the height is measured above it.

Disc or Voronoi cell

Each column is integrated over a disc and over its Voronoi cell. The cell integral collects the intensity that the probe tails spread between columns.

Thickness and Z

Load a thickness series from the simulator to read thickness off the curve. The Z exponent comes from I1/I2 = (Z1/Z2)n, a single-scattering rule of thumb.

Statistics

Columns: show the table of every column found (position, class and intensities)

Image

or drop a TIFF or PNG here

Normalisation

Values in the raw units of the image: the detector output with the beam blanked and with the whole probe on the detector (vacuum, detector inserted into the beam). The image becomes (I − Idark)/(Iprobe − Idark), the fraction of the probe reaching the detector, which is what the simulator computes. Leave the probe level empty to work in raw units.

Columns

Local maxima of the smoothed image above the threshold (a fraction of the range), refined by a Gaussian fit that subtracts the neighbours, which keeps close dumbbell columns from pulling each other. The fit also finds the flat background around each column, so the fitted height is measured above it. The classes below split the columns into two groups by intensity.

Simulated thickness series

Export the series from the STEM tab of the SAED pattern simulator (the button writes a JSON file, or hands it to this page through the browser). The same detector angles, voltage and probe as the experiment are needed for the comparison to mean anything.

Z exponent

Export

What the page does

The cards beside the image summarise the method. The full description is here.

More detail: normalisation, column finding, Voronoi integration, the thickness series and the Z exponent

An annular dark-field image records, at each probe position, the fraction of the beam that scatters into the detector. Expressed that way it is an absolute quantity, and it can be compared with a simulation without any fitted scale: LeBeau and Stemmer showed that normalising the image to the detector's response with the beam blanked and with the full probe on it turns the grey levels into that fraction, at which point the intensity of each atomic column is a number that depends on the specimen thickness, the column's composition, the probe and the detector angles, all of which a Bloch-wave or multislice calculation can reproduce.

The page performs the normalisation, locates the columns as local maxima of a smoothed copy of the image, refines each position and amplitude by fitting a Gaussian while subtracting the current model of its neighbours (which stops the two columns of a dumbbell pulling each other's centroid inward), and integrates each column over a disc of chosen radius and over its Voronoi cell, the set of pixels nearer to it than to any other column. The Gaussian fit includes a flat background under each column, as in the model of De Backer and co-workers, so the fitted height is measured above the real background between the columns. The Voronoi integral is the measure that Van Aert and co-workers use for counting atoms in a column, because it collects the scattered intensity that the probe tails spread between columns.

The STEM tab of the SAED simulator on this site computes exactly this fraction for a chosen crystal, zone axis, voltage, probe and detector at a series of thicknesses, and exports the peak and cell-mean fraction of every column type in the projected cell.

Loaded here, that series becomes the calibration curve: the measured fraction of a column class is read against it, every thickness at which the curve passes through the measurement is reported, and the page says whether the curve is monotone over the range, since channelling makes the column intensity oscillate and a fraction can correspond to more than one thickness. The Z exponent is estimated from the two intensity classes with I1/I2 = (Z1/Z2)n, which is the single-scattering rule of thumb; the simulator gives the same ratio with the dynamical effects included, and the difference between the two is a measure of how far the specimen is from the thin, incoherent limit.

Scope and limits

Detector response

The normalisation assumes a linear, uniform detector. Real detectors vary across their face and are non-linear near saturation; flux-weighting maps correct this.

The image as it is

Scan distortion, drift and sample tilt change column intensities and positions. The page does not correct them.

What the finder expects

Columns brighter than their surroundings and farther apart than the smoothing width. Remove a strongly non-uniform background first.

Simulation assumptions

The comparison inherits the simulator’s assumptions, and the simulated fractions leave out the detector’s own response.

More detail: scope and limits

The normalisation assumes the detector responds linearly and uniformly; a real detector has a gain that varies across its face and a non-linear response near saturation, which the flux-weighting maps of LeBeau and Stemmer and of Findlay and LeBeau correct. Scan distortion, drift and sample tilt change the column intensities and positions; the page measures the image as it is. The column finder expects columns brighter than their surroundings and separated by more than the smoothing width; a strongly non-uniform background (thickness gradients, contamination) should be removed first.

The comparison with the simulator inherits every assumption of that calculation, including its Debye-Waller factors and the absence of the specimen's surface layers, and the simulated fractions do not include the detector's own response. Where the experimental and simulated intensities differ by a constant factor, the Stobbs factor of the HRTEM literature, the cause is usually in one of these, not in the physics.

Checks on your image. A note under the image says when:

  • the file is a JPEG: JPEG compression changes pixel values (ISO/IEC 10918-1);
  • the file is in colour, or has only 8 bits (256 grey levels): such a file is often a copy made for display, not the detector output;
  • a column’s disc or Voronoi cell holds a pixel at the top or bottom of the file’s integer range: that pixel was clipped and its true value is lost (a float file has no fixed range, so it is not checked);
  • the probe level entered is at the top of the range: the reading with the whole probe was clipped;
  • no probe level is entered, or it is not above the dark level: the numbers stay raw grey levels, which cannot be compared with a simulation (LeBeau and Stemmer 2008);
  • a column reads above 1 or below 0 after normalisation: a column cannot scatter more than the whole probe or less than nothing, so no thickness is read from such a value;
  • the columns do not form two groups: a fit of two Gaussians must put their centres at least 2 widths apart and must fit clearly better than one Gaussian (likelihood-ratio test at the 5% level), and at least 5 columns are needed (Ashman, Bird and Zepf 1994);
  • the Z exponent comes from raw grey levels with the dark level at 0 (a detector offset pulls the ratio toward 1), or the faint class mean is zero or below (the ratio then has no meaning);
  • a simulator series is loaded and its closest columns are less than 2 pixels apart at the pixel size entered: a spacing under 2 pixels cannot be recorded.

The number of pixels per column (the median Voronoi cell) is reported without a pass or fail, because there is no published minimum. Counting noise is not tested directly: grey levels are not electron counts unless the detector has been calibrated, so its effect is seen through the two-group test.

Checked (October 2026). Run on the page's own synthetic GaAs [110] image (dumbbells 0.141 nm apart, 5.65 px): the column finder and the Gaussian refinement located all 666 columns inside the border with a mean position error of 0.017 px, and returned a Ga:As height ratio of 0.900 against the 0.900 written into the image. On the monthly test images (five crystals a month, each with a known Z exponent between 1.6 and 2, noise and a background between the columns), the fitted heights give n back within 0.04. The normalisation is that of LeBeau and Stemmer 2008; the Z-exponent rule I1/I2 = (Z1/Z2)n gives n = ln 2 / ln(38/22) = 1.268 for a 2:1 intensity ratio between columns of Z = 38 and Z = 22, as it should.

References

Show the 8 references
  1. D. B. Williams and C. B. Carter, Transmission Electron Microscopy, 2nd ed., Springer (2009): chapter 22 (STEM imaging and Z contrast) and chapter 31 (processing and quantifying images).
  2. J. M. LeBeau and S. Stemmer, Experimental quantification of annular dark-field images in scanning transmission electron microscopy, Ultramicroscopy 108, 1653-1658 (2008); J. M. LeBeau, S. D. Findlay, L. J. Allen and S. Stemmer, Quantitative atomic resolution scanning transmission electron microscopy, Phys. Rev. Lett. 100, 206101 (2008).
  3. S. D. Findlay and J. M. LeBeau, Detector non-uniformity in scanning transmission electron microscopy, Ultramicroscopy 124, 52-60 (2013).
  4. S. Van Aert, K. J. Batenburg, M. D. Rossell, R. Erni and G. Van Tendeloo, Three-dimensional atomic imaging of crystalline nanoparticles, Nature 470, 374-377 (2011): column-by-column atom counting from Voronoi-integrated intensities.
  5. A. De Backer, K. H. W. van den Bos, W. Van den Broek, J. Sijbers and S. Van Aert, StatSTEM: an efficient approach for accurate and precise model-based quantification of atomic resolution electron microscopy images, Ultramicroscopy 171, 104-116 (2016): the Gaussian-model fitting of columns.
  6. P. D. Nellist and S. J. Pennycook, The principles and interpretation of annular dark-field Z-contrast imaging, Adv. Imaging Electron Phys. 113, 147-203 (2000).
  7. K. M. Ashman, C. M. Bird and S. E. Zepf, Detecting bimodality in astronomical datasets, Astron. J. 108, 2348 (1994): two equal Gaussian groups show two peaks only when their means are at least 2 widths apart, and the likelihood-ratio test of two groups against one.
  8. ISO/IEC 10918-1:1994, Information technology: Digital compression and coding of continuous-tone still images, requirements and guidelines (the JPEG standard).
Cite this page: Tripathy, Manisha. “Quantitative HAADF.” untethered atom, 2026, https://untetheredatom.com/tem/quantitative-haadf.
BibTeX
@misc{tripathy2026quantitativehaadf,
  author = {Tripathy, Manisha},
  title  = {Quantitative HAADF},
  year   = {2026},
  howpublished = {\url{https://untetheredatom.com/tem/quantitative-haadf}},
  note   = {Interactive web tool}
}
Last updated 16 October 2026.