# 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.

Published 2026-11-06 by LabCanvas team. https://www.labcanvas.com/blog/2d-flake-lateral-size

![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](https://www.labcanvas.com/blog/imagej/2d-flake-lateral-size-cover.webp)

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 \times \sqrt{\text{Area}/\pi}\).
- \(\sqrt{\text{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](https://www.labcanvas.com/blog/imagej/2d-flake-lateral-size-which-size.webp "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](https://www.labcanvas.com/blog/imagej/2d-flake-lateral-size-step1-open.webp "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](https://www.labcanvas.com/blog/imagej-scale-bar-set-scale) shows this in detail.

![ImageJ Set Scale dialog showing 80 pixels per micron](https://www.labcanvas.com/blog/imagej/2d-flake-lateral-size-step2-scale.webp "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](https://www.labcanvas.com/blog/imagej/2d-flake-lateral-size-step3-measurements.webp "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](https://www.labcanvas.com/blog/imagej/2d-flake-lateral-size-step4-blur.webp "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](https://www.labcanvas.com/blog/imagej/2d-flake-lateral-size-step5-threshold.webp "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](https://www.labcanvas.com/blog/imagej/2d-flake-lateral-size-step6-mask.webp "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:

| Setting | Value | Why |
|---|---|---|
| Size (micron^2) | 0.03-Infinity | Drops noise specks; 0.03 µm² is about 190 pixels here |
| Circularity | 0.00-1.00 | Keeps every shape; flakes are not round |
| Show | Nothing | The outlines go to the ROI Manager instead |
| Display results, Clear results, Summarize | Ticked | One row per flake, and the count |
| Exclude on edges | Ticked | Flakes cut by the frame would be measured too small |
| Include holes | Ticked | Measures each flake whole |
| Add to Manager | Ticked | To see the outlines on the original |

Click **OK**.

![ImageJ Analyze Particles dialog over the binary mask of the flakes](https://www.labcanvas.com/blog/imagej/2d-flake-lateral-size-step7-analyze-particles.webp "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](https://www.labcanvas.com/blog/imagej/2d-flake-lateral-size-step8-results.webp "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](https://www.labcanvas.com/blog/imagej/2d-flake-lateral-size-step9-distribution.webp "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](https://www.labcanvas.com/blog/imagej/2d-flake-lateral-size-step9b-histogram.webp "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

| Measure | Mean ± SD (µm) | Range (µm) |
|---|---|---|
| Feret (lateral size) | 1.011 ± 0.441 | 0.323–1.731 |
| MinFeret (width) | 0.783 ± 0.362 | 0.249–1.425 |
| Equivalent circle diameter | 0.845 ± 0.376 | from 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](https://www.labcanvas.com/blog/imagej/2d-flake-lateral-size-edges.webp "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](https://www.labcanvas.com/blog/imagej/2d-flake-lateral-size-min-size.webp "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](https://www.labcanvas.com/blog/imagej/2d-flake-lateral-size-blur.webp "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](https://www.labcanvas.com/tools/graphene-raman-layer-calculator) 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](https://www.labcanvas.com/analysis.html) 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](https://www.labcanvas.com/analysis-examples/em-flakes.webp "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](https://www.labcanvas.com/image-analysis-validation).

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](https://www.labcanvas.com/analysis.html): 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](https://doi.org/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](https://doi.org/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](https://doi.org/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 \times \sqrt{\text{Area}/\pi}\), 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.

## Related links

- [Feret diameter and circularity in ImageJ](https://www.labcanvas.com/blog/feret-diameter-circularity): What each shape measurement means
- [Nanoparticle size distribution from TEM](https://www.labcanvas.com/blog/nanoparticle-size-distribution-tem): The same method for round particles
- [Analyze Particles in ImageJ, explained](https://www.labcanvas.com/blog/analyze-particles-imagej): Every option in the dialog
- [Graphene Raman layer checker](https://www.labcanvas.com/tools/graphene-raman-layer-calculator): Monolayer or multilayer from the 2D and G bands
- [How to set the scale in ImageJ](https://www.labcanvas.com/blog/imagej-scale-bar-set-scale): From a scale bar or a micrometer
- [Image Analysis: the complete guide](https://www.labcanvas.com/blog/image-analysis-complete-guide): Every tool in LabCanvas Image Analysis
