SEM image segmentation

I am new in image analysis. I am currently working on quartz grain images captured with a scanning electron microscope. The main idea is to extract the grain from the background to measure grain outline and grain area in batch mode. To speed up my analysis I am asking you instead of playing to much around.
So here my questions:
What kind of pre-processing would you choose?
Any suggestions for thresholding?
Thanks in advance!
I attached 5 images of my data set:

Hi @VincentK

I often use these macros: (Obviously it will adapt)

With the scale bar

setBackgroundColor(0, 0, 0);
setAutoThreshold("Triangle dark");
run("Create Selection");
run("Clear Outside");
run("Select None");

Without the scale bar

doWand(i, j, 88, "Legacy");
setBackgroundColor(0, 0, 0);
run("Clear Outside");
run("Select None");


setAutoThreshold("Triangle dark");;
//setThreshold(83, 255);
setOption("BlackBackground", true);
run("Convert to Mask");
run("Fill Holes");
run("Set Measurements...", "area perimeter display add redirect=None decimal=2");
run("Analyze Particles...", "size=1000-Infinity display add");

Hi @Mathew,
thank you very much for your answer and the suggestions.
I am now using your segmantation code without the scale bar and one of mine, which together handle most of the images I have processed yet.

I incorporated the imageJ macro in my R-function where I can choose now which segmentation method of those two I want to use. I am creating an image with the outline as an overlay on the original grain image to see wether I am happy with the results or not. Also, I am using the shape-shmoothing plugin from the biomedgroup site. Here I also choose manually the relative number of FDs. So in the end it is not really a batch (headless) process but like this, it gives me more control.

My segmentation code:

run("Auto Local Threshold", "method=Phansalkar radius=20 parameter_1=0 parameter_2=0 white");
setOption("BlackBackground", true);
run("Make Binary");
1 Like