Trainable WEKA Segmentation for analysing macroalgae development


I am a third-year bachelor student doing a research project on how temperature and light affect the early stages of development of a type of macroalgae (seaweed).

For the project I need to count macroalgae zoospores, female and male gametophytes, as well as eggs. Some are overlapping. The surface area and length of the gametophytes need to be calculated too. There are about 800 images to process, they range from very busy to nothing to identify.

Is the Trainable WEKA Segmentation plug-in suitable for this task?

Thanks for any help,
Kind regards,


1 Like

Hello JoshuaJ,
I have a lot of faith in Trainable WEKA so I would say ‘Yes’ but without actually seeing an example it really would be difficult to say for sure.

Hey Bob,

Thanks for your reply.
Here is a link to one of the more dificult examples.

Are there any tutorials you recommend to getting started with?

Kind regards,

Hello Joshua,
It would be definitely do able with WEKA, and the best way to get started is with the ‘Help’ for the plug in.
You should not have any problems, but if you do just shout back.

Hey Bob,
Is there anyway to seperately count the overlaping gametophytes with ImageJ?
I have the classifiers running well enough to calculate the total area but I can’t find a way to allow for the overlapping gametophytes to be counted as seperate units. I have 800 images to do, so I would prefer to not do this manually.

Kind regards,

Well Hello JoshuaJ, Joshua is such a cool name,
Yes, but it will take some pre-processing of the image to do so. Allow me a short time to best provide a guide of how best to do this and I am assuming the color spectrum is very similar. If not, let me know but it shouldn’t be a problem. I’ll return as soon as possible.

Hello again,
You only need to expand the dynamic range of the spectrum and train WEKA for the areas where the overlap occurs. You may need to add a new class or continue training a class you are already using.
The simple macro below will greatly expand the range and should be self-explainatory. I used your reference image to write it. Just copy it and paste into your Macro recorder, save it for you may want to add more to it later.

//3:13 PM 3/26/2019

run(“Select All”);
newImage(“Inverted”, “RGB black”, 2048, 1536, 1);
imageCalculator(“Subtract create”, “Joshua_20_06 44.1.tif”,“Inverted”);
selectWindow(“Result of Joshua_20_06 44.1.tif”);

You’re doing well so keep going, if any further questions just shout out.