So I have got a TEM image for sub-cellular structures like the one shown below, and my task is to measure the size of the mitochondria (dark grey round shape structures; one of them is highlighted with red circle) in there.
I learned that I need to do some thresholding to the image to allow ImageJ/Fiji to distinguish the target (mitochondria) from the background. To begin with, I tried the build-in algorithm (Huang, intermodes, etc) from the drop-down window of the Threshold function, but none of them was able to efficiently separate the mitochondria from the background. So I manually set up some parameters. It worked in some cases, therefore I decided to use the same setting for batch processing by doing the macro below:
run("Convert to Mask");
run("Analyze Particles...", "size=0.02-Infinity show=Outlines display exclude summarize");
However, as soon as there is a slight change of image quality, i.e variations in contrast, the parameters starts to fail, and non-specific targets start to show up (like the large largest circle in the image below, which is obviously not a mitochondrion; and some of the mitochondria outlined are not even the right size):
So I was wondering if there is any algorithm anyone has tried for thresholding, or even measuring the size of mitochondria. Is there a way to train ImageJ/Fiji (i.e. build a numeric/data profile of mitochondria) to identify mitochondria.
I understand this involves highly complicated machine learning stuff, and it is going to take some effort to reach to that level of skills. But when you are facing with 30 images with each of them containing 100 mitochondria, and multiple groups of images of different genetic background, you would rather want to figure out how to do it the smart and reproducible way, the automatic style.
Has anyone encountered similar problems?