If you have these values from previous works, you should look into how they define them.
Based on your example image, it looks like all your pores are within the same region of the histogram. As such, simple thresholding is definitely not going to enable you to separate the different classes of pores. Even more intricate algorithms such as graph cut and watershed don’t take morphology into account. I hate to say it but, as far as I know, you have only 2 options.
- Segment the image based on the histogram and then manually go through and label each pore with which class it should belong to. This could take a long time.
- Use some machine learning algorithm (probably a convolutional neural network) that accounts for morphology (not all out-of-the-box solutions do). However, this only makes sense if you have a lot of these images that you need to segment. The reason is that it requires at least a decent amount of data segmented via the first method in order to train the algorithm.
A third pseudo-option is to do a basic thresholding and then determine the classes afterwards by comparing the shape factors with the previously published data. The obvious flaw with that method is that you won’t be able to use your results to verify the previous works; which I am guessing is a major reason you are doing this in the first place.
Maybe smith_robertj’s fractal stuff would apply here? I still don’t follow what all that is about.