Skip to content
CV (PDF)
← All projects

A reproducible ImageJ and Python workflow for SEM particle sizing

Built an open workflow that replaced manual particle counting in our lab course, cutting analysis time and removing operator bias.

Role
Independent project, arising from SCMS 242 Materials Characterisation
Supervisor
Self-directed; reviewed by Dr. Anucha Wongsri
Lab
SCME, Mahidol University
Dates
Sept – Dec 2025

Particle size distributions in our characterisation course were measured by hand in ImageJ, which is slow and depends heavily on who is doing the measuring. I wrote a thresholding and watershed macro to segment SEM micrographs automatically, then a short Python script to aggregate the output and fit a log-normal distribution.

I validated it against 200 particles measured manually by three different students, so the comparison covers inter-operator spread and not just my own measurements.

Key result

Agreed with manual measurement to within 4% on mean particle diameter while reducing analysis time per micrograph from about 25 minutes to under 2.

Methods and techniques

  • ImageJ macro scripting
  • Watershed segmentation
  • Python (pandas, matplotlib)
  • SEM image analysis
  • Log-normal distribution fitting

Files and links