LabCanvas

Lateral size of 2D flakes (graphene, MoS₂) from SEM or TEM in ImageJ

Measure graphene or MoS₂ flake lateral size in ImageJ: scale, threshold, Analyze Particles with Feret diameter, edge flakes, overlaps and a size histogram.

ImageJ 1.54f measuring a synthetic SEM image of MoS₂ flakes: 33 flakes outlined in yellow after Analyze Particles, and the Results table with the area, Feret diameter and MinFeret of each flake
ImageJ 1.54f measuring a synthetic SEM image of MoS₂ flakes: 33 flakes outlined in yellow after Analyze Particles, and the Results table with the area, Feret diameter and MinFeret of each flake.
Contents

To measure the lateral size of 2D flakes (graphene, MoS₂, h-BN) in ImageJ, set the scale, tick Area and Feret's diameter in Analyze › Set Measurements…, smooth the noise with a Gaussian blur, threshold the flakes and click Apply, fill holes, then run Analyze › Analyze Particles… with a minimum size and Exclude on edges ticked. The Feret column is each flake's lateral size (its longest dimension); Analyze › Distribution… turns it into a size histogram.

On the synthetic MoS₂ sample used below, this gives 33 whole flakes with a lateral size (Feret) of 1.011 ± 0.441 µm, from 0.323 to 1.731 µm.

What you need: ImageJ 1.x or Fiji (every command here is in both). An SEM or TEM image of flakes on a plain background, ideally a TIFF from the microscope with its pixel size. The example is a synthetic SEM image of exfoliated MoS₂ flakes on SiO₂/Si (1024 × 1024 pixels, 0.0125 µm per pixel), made for practice, with flakes of known shape. Time: about 10 minutes.

What "lateral size" means

Lateral size is the size of a flake in the plane of the substrate, not its thickness. Flakes are angular, so "size" can mean several things, and they differ by 20% or more on the same flake:

  • Feret diameter (Feret's diameter, or maximum caliper): the longest distance across the flake. This is what most graphene and MoS₂ papers call the lateral size or length, L; liquid-exfoliation studies such as Backes et al. (2014) measure the longest dimension of each nanosheet in TEM.
  • MinFeret: the narrowest width, as if measured with calipers.
  • Equivalent circle diameter (ECD): the diameter of a circle with the same area, 2×Area/π.
  • Area: used in some liquid-exfoliation papers as one number for an irregular sheet.
One MoS2 flake with its Feret diameter, MinFeret and equivalent circle drawn over it
One flake from the sample, measured in ImageJ 1.54f: Feret 1.688 µm red, MinFeret 1.425 µm blue, equivalent circle diameter 1.454 µm green, area 1.660 µm² yellow outline. The same flake has three different “sizes”.

Pick one before you start, name it in the paper, and keep it the same for every sample. This guide uses the Feret diameter.

How do I measure flake size in ImageJ? Step by step

Step 1: Open the image

Click File › Open… and choose your TIFF. The line above the image shows its size in calibrated units: here 12.8x12.8 microns (1024x1024). If it says pixels instead, the file has no scale and Step 2 matters.

ImageJ window with the MoS2 flake SEM image open, the size in microns shown above the image
Step 1 in ImageJ 1.54f: the synthetic MoS₂ SEM image open. The line above the image reads 12.8x12.8 microns 1024x1024, so the scale came with the file. Thin flakes are light grey, thicker ones darker.

Step 2: Check the scale

Click Analyze › Set Scale…. For this file it reads Distance in pixels: 80, Known distance: 1, Unit of length: micron, so 80 pixels = 1 µm. Click OK.

If your image has no scale, draw a line along the scale bar first with the straight-line tool, then open Set Scale: the distance in pixels is filled in, and you type the bar's length and unit. How to set the scale in ImageJ shows this in detail.

ImageJ Set Scale dialog showing 80 pixels per micron
Step 2: Analyze › Set Scale shows 80 pixels 1 for a known distance of 1 micron 2: Scale 80 pixels/micron 3.

Step 3: Choose what to measure

Click Analyze › Set Measurements…. Tick Area and Feret's diameter, and click OK. Feret's diameter adds five columns: Feret, FeretX, FeretY, FeretAngle and MinFeret. Tick Shape descriptors too if you want solidity to spot merged flakes (see below).

ImageJ Set Measurements dialog with Area and Feret’s diameter ticked
Step 3: Analyze › Set Measurements with Area 1 and Feret’s diameter 2 ticked.

Step 4: Make a copy and smooth the noise

Click Image › Duplicate… and OK, so the original stays untouched. On the copy, click Process › Filters › Gaussian Blur…, type 2 in Sigma (Radius) and click OK.

SEM images are grainy. Without smoothing, the noise makes the flake edges ragged, and ragged edges make the Feret diameter a little too long.

ImageJ Gaussian Blur dialog with sigma 2
Step 4: Process › Filters › Gaussian Blur on the copy, Sigma Radius 2 1.

Step 5: Threshold the flakes

Click Image › Adjust › Threshold…. Choose Otsu in the first list and leave Dark background unticked, because here the flakes are darker than the substrate. The flakes turn red. Check that every flake is red, including the thin light-grey ones, and that the substrate is not. Then click Apply.

ImageJ sets the range to 0–115 here. On a TEM image, where flakes are also dark on a bright background, the same settings work; on a bright-flake image, tick Dark background.

ImageJ Threshold window with Otsu chosen and the flakes shown in red
Step 5: Image › Adjust › Threshold with Otsu 1, Dark background unticked 2: the flakes are red, 19.61% of the image. Click Apply 3.

Step 6: Fill the holes

The copy is now a black-and-white mask: flakes white, substrate black. Click Process › Binary › Fill Holes, so that a bright speck or a thin patch inside a flake does not punch a hole in it.

ImageJ binary mask of the flakes after Fill Holes
Step 6: Process › Binary › Fill Holes on the mask. Flakes are white, the substrate black; the white blobs cut by the frame will be left out in Step 7.

Step 7: Analyze Particles

Click Analyze › Analyze Particles… and set:

SettingValueWhy
Size (micron^2)0.03-InfinityDrops noise specks; 0.03 µm² is about 190 pixels here
Circularity0.00-1.00Keeps every shape; flakes are not round
ShowNothingThe outlines go to the ROI Manager instead
Display results, Clear results, SummarizeTickedOne row per flake, and the count
Exclude on edgesTickedFlakes cut by the frame would be measured too small
Include holesTickedMeasures each flake whole
Add to ManagerTickedTo see the outlines on the original

Click OK.

ImageJ Analyze Particles dialog over the binary mask of the flakes
Step 7: Analyze › Analyze Particles with Size 0.03-Infinity µm² 1, Display results, Clear results, Summarize and Add to Manager ticked 2, and Exclude on edges and Include holes ticked 3.

Step 8: Read the numbers and check the outlines

The Summary window gives the count (33) and the mean of each column: Feret 1.011 µm. The Results table has one row per flake. For the standard deviation, click Analyze › Summarize with the Results table in front: it adds Mean, SD, Min and Max rows.

Then click the original image and Show All in the ROI Manager. Every outline should sit on the edge of one flake. This is the check that matters most.

ImageJ Results and Summary tables for 33 MoS2 flakes, with the flake outlines on the original image
Step 8: 33 flakes outlined in yellow on the original. Summary: Count 33, mean Feret 1.011 µm 1. Analyze › Summarize adds Mean and SD rows to the Results: Feret 1.011 ± 0.441 µm, MinFeret 0.783 ± 0.362 µm 2.

Step 9: Make the size histogram

Click Analyze › Distribution… with the Results table open. Choose Feret as the Parameter, untick Automatic binning, type 8 bins and a range of 0-2, and click OK. Each bar is then 0.25 µm wide.

ImageJ Distribution dialog with Feret chosen, 8 bins and a range of 0 to 2
Step 9: Analyze › Distribution with Parameter Feret 1, Automatic binning unticked 2, 8 bins 3 over 0–2 µm 4.
ImageJ histogram of the Feret diameters of 33 flakes
The Feret histogram from ImageJ: N 33, mean 1.011 µm, SD 0.441 µm, min 0.323, max 1.731 µm; the fullest bin is 0.50–0.75 µm with 7 flakes.

ImageJ's histogram is quick but plain. For a figure, copy the Feret column (Edit › Copy in the Results window, or File › Save As… for a CSV) into your plotting program and draw it with axis labels and the number of flakes.

The result on the sample

MeasureMean ± SD (µm)Range (µm)
Feret (lateral size)1.011 ± 0.4410.323–1.731
MinFeret (width)0.783 ± 0.3620.249–1.425
Equivalent circle diameter0.845 ± 0.376from the areas

The median Feret is 0.995 µm. 33 flakes is enough to show the method, not enough for a paper: aim for 100 to 300 whole flakes from several fields, taken across the substrate rather than where it looks best.

Why exclude flakes that touch the edge?

A flake cut by the frame is measured smaller than it really is, and the big flakes are the ones most often cut. On the sample, unticking Exclude on edges gives 45 objects instead of 33. Twelve of them are pieces of flakes, and the SD jumps from 0.441 to 0.547 µm.

Two ImageJ results side by side: with edge flakes included 45 objects and excluded 33 flakes
Left: Exclude on edges off, 45 objects including 12 flakes cut by the frame magenta. Right: ticked, 33 whole flakes yellow, Feret 1.011 ± 0.441 µm.

Excluding them biases the result slightly towards small flakes instead, because a big flake is more likely to touch the edge. With flakes much smaller than the field, as here, that bias is small. If your flakes are a large fraction of the field, image at a lower magnification.

Why does Analyze Particles find thousands of flakes?

Because every noise speck that passes the threshold is counted as a particle. On this image, without the blur and with a size of 0–Infinity, ImageJ finds 2,377 "particles"; with a minimum of 0.03 µm² it finds the 33 flakes. Set the minimum size to well below your smallest real flake, and check the outlines.

ImageJ outlines with no minimum size thousands of specks and with a minimum of 0.03 square microns 33 flakes
Top-left quarter of the sample. Left: Size 0–Infinity and no smoothing, 2,377 particles, nearly all noise. Right: Size 0.03–Infinity µm², the specks are gone.

Does the Gaussian blur change the result?

A little, and for the better. Noise roughens the threshold edge, and a rough edge has spikes that make the longest distance across a flake too long. On this sample the mean Feret is 1.043 µm without the blur and 1.011 µm with it, about 3% less. The equivalent circle diameter does not move (0.845 µm both ways), because area is not sensitive to a ragged edge. A blur of 1–2 pixels is enough; a large blur rounds the corners and shrinks small flakes.

One thin flake outlined without smoothing ragged and after a Gaussian blur of sigma 2 smooth
A thin flake with weak contrast. Left: no smoothing, ragged outline; mean Feret over all flakes 1.043 µm. Right: Gaussian Blur sigma 2 first, smooth outline; mean Feret 1.011 µm.

How do I handle overlapping and folded flakes?

Flakes that land on each other merge into one outline, and the Feret of the pair is far longer than either flake. In SEM the overlap shows up as a darker patch (twice the thickness) and the outline has a notch where two sets of straight edges meet. Folded flakes and terraces look similar.

  • Look first. With the outlines shown on the original, scan for notched outlines with a darker inner region.
  • Solidity helps. Tick Shape descriptors in Set Measurements: solidity is the area divided by the area of the convex hull. Single flakes sit near 0.95 here; a merged pair often scores lower. Sort the Results by Solidity and look at the lowest ones.
  • Watershed is not the fix. Process › Binary › Watershed cuts round touching objects well but cuts angular flakes in the wrong place.
  • Split or remove. To split a pair on the mask, draw a line between them with the line tool, set the foreground colour to black (Edit › Options › Colors…) and press Ctrl+D (Edit › Draw), then run Analyze Particles again. Or delete the merged outline in the ROI Manager. Either way, report how many you split or removed.
  • Prevent it. A more dilute dispersion, or spin-coating instead of drop-casting, gives flakes that land apart.

Pitfalls

  • Thin flakes missed. A monolayer may be only slightly darker than the substrate. If thin flakes come out ragged or half missing (as one or two do here), the threshold is cutting through them: try another method, raise the threshold a little, or improve the contrast at the microscope (lower kV in SEM often helps). Never measure only the high-contrast flakes; that biases towards thick ones.
  • Uneven background. SEM images often get brighter or darker across the field. If the threshold catches the substrate in one corner, run Process › Subtract Background… (tick Light background for dark flakes) before thresholding.
  • A JPEG or a screenshot. Compression adds blocks at the flake edges. Measure the TIFF from the microscope.
  • Too few flakes. A size distribution needs hundreds of flakes. Use several fields and pool them; report the number.
  • Mean of a skewed distribution. Flake sizes are usually skewed towards small flakes, and often close to log-normal. Give the median alongside the mean, or fit a log-normal and give its median and spread.
  • Thickness is not lateral size. SEM contrast hints at thickness (thicker MoS₂ is darker), but it does not give the number of layers. Use AFM for thickness, or Raman: for graphene, the graphene Raman layer checker compares the 2D band width and I(2D)/I(G) with the NPL criteria.

Reporting it

A methods sentence to copy, with the parts in brackets filled in:

Flake lateral size was measured in [ImageJ 1.54f] on [SEM] images ([n] fields, [0.0125] µm per pixel): Gaussian blur (sigma [2] pixels), Otsu threshold, Fill Holes, then Analyze Particles with a minimum area of [0.03 µm²], excluding flakes touching the image border. Lateral size is the Feret diameter (maximum caliper). [Merged or overlapping flakes were removed by inspection ([k] of [N]).] Values are given as mean ± SD and median of [N] flakes.

Show the histogram with the number of flakes in the legend, or a cumulative distribution when comparing exfoliation conditions. Cite ImageJ (Schneider et al. 2012) or Fiji (Schindelin et al. 2012).

Switch to LabCanvas: flake size in a few clicks

The same measurement runs in LabCanvas Image Analysis in the browser, with nothing to install and no macros.

  1. Click Open an image and choose your SEM or TEM TIFF; the pixel size is read from the file.
  2. In the Measure tab, open Set measurements and tick Area and Feret's diameter.
  3. In the Count tab › Count particles: threshold Otsu, dark objects, Fill holes, Exclude particles on the edges, a minimum size, then Count.
  4. Click Send to Graphs on the Particles table for the histogram and the mean ± SD.
2D flake lateral size in LabCanvas Image Analysis
2D flake lateral size: 33 MoS₂ flakes those cut by the frame left out: lateral size Feret from 0.3502 to 1.743 µm, 1.043 ± 0.4381 µm on average.

On the same MoS₂ image, LabCanvas counts 33 flakes, Feret 1.043 ± 0.4381 µm (Otsu, no blur, minimum 0.03 µm²). ImageJ with the same settings and no blur gives exactly the same: 33 flakes, 1.0428 ± 0.4381 µm. The 1.011 µm above is ImageJ after the Gaussian blur.

Why switch for flake sizes:

  • No install and no plugins: it runs on any computer, so you can measure next to the microscope.
  • Results straight to Graphs: the histogram, mean ± SD and a figure with a scale bar, with a methods sentence to copy.
  • Validated: every measurement is checked against independent software in more than 4,000 automated tests.

Fiji stays better for very large batches with macros, for 3D, and for files in a maker's own format (.dm3, .emi, .czi), which LabCanvas needs as TIFF first.

Open Image Analysis: free with a LabCanvas account (downloading CSV and image files is part of LabCanvas Pro). ImageJ and Fiji are independent open-source projects; LabCanvas is not affiliated with them.

References

  • Backes C, Smith RJ, McEvoy N, Berner NC, McCloskey D, Nerl HC, et al. (2014). Edge and confinement effects allow in situ measurement of size and thickness of liquid-exfoliated nanosheets. Nature Communications 5, 4576. doi:10.1038/ncomms5576
  • Schindelin J, Arganda-Carreras I, Frise E, et al. (2012). Fiji: an open-source platform for biological-image analysis. Nature Methods 9, 676–682. doi:10.1038/nmeth.2019
  • Schneider CA, Rasband WS, Eliceiri KW (2012). NIH Image to ImageJ: 25 years of image analysis. Nature Methods 9, 671–675. doi:10.1038/nmeth.2089

Frequently asked questions

What is the lateral size of a 2D flake?

The size of the flake in the plane of the substrate, as opposed to its thickness. Most papers report the longest dimension, which ImageJ gives as the Feret diameter (the maximum caliper). Some report the square root of the area or the equivalent circle diameter instead, so always say which one you used.

How do I measure flake size in ImageJ?

Set the scale (Analyze › Set Scale), tick Area and Feret’s diameter in Analyze › Set Measurements, smooth the noise with Process › Filters › Gaussian Blur (sigma 2), threshold the flakes with Image › Adjust › Threshold and click Apply, run Process › Binary › Fill Holes, then Analyze › Analyze Particles with a minimum size, Exclude on edges and Display results ticked. The Feret column is the lateral size of each flake.

Should I use Feret diameter or equivalent circle diameter for flakes?

Feret diameter (the longest distance across) is the usual lateral size for flakes and nanosheets, because flakes are angular and often elongated. The equivalent circle diameter, 2×Area/π, is smaller for any shape that is not a circle: on the sample in this guide the mean Feret is 1.011 µm and the mean equivalent diameter 0.845 µm. Report one, name it, and keep it the same across samples.

Why should flakes touching the edge of the image be excluded?

A flake cut by the frame is measured smaller than it is, and large flakes are more likely to be cut, so including them biases the size distribution. Tick Exclude on edges in Analyze Particles, and image enough fields to have at least a few hundred whole flakes.

How do I handle overlapping flakes in ImageJ?

Overlapping flakes merge into one outline, which inflates the Feret diameter. Watershed rarely cuts angular flakes in the right place. Look at the outlines over the image: split a merged pair by drawing a black line between them on the mask, or delete it from the ROI Manager and say how many you left out. Better, deposit a more dilute dispersion so that flakes land apart.

Can ImageJ measure flake thickness from SEM?

No. SEM contrast changes with thickness, so thicker flakes look darker, but it does not give the number of layers. Use AFM for thickness, or Raman spectroscopy for graphene layer number; for TEM, count the edge fringes of folded flakes.

flake size distributiongraphene flake size SEMlateral size MoS22D material flake size ImageJFeret diameterAnalyze Particlesnanosheet sizeSEM image analysisTEM image analysissize histogramImageJ

Try it in LabCanvas

Every app is free to start in your browser. Create an account and begin.

Start Image Analysis free in your browser