Porosity for a SEM image

Hello Everyone,
I need the procedure to get these values for a SEM image;
 By using Image J calculate and classify:

  1. Total porosity (Volume fraction %).
  2. Open orientated randomly pores (Volume fraction %).
  3. Microcracks (Volume fraction %).
  4. Penney shaped pores (Volume fraction %).
  5. Non-flat pores (Volume fraction %).

 Aspect ratio and shape factor for each kind of porosity.
Help is highly appreciated.

1 Like

Hello Moteb9867,
If you would like you can look at Andrew-Shum post for quite a few pointers.
Good Luck,

Dear Bob,
Whaere can I find it?



Up near your profile image you will see magnifying icon. Press it and enter the site name (Andrew_Shum) then enter, If you need more I will send some.


Hi again Motrb9867,
This may help find info

See Ya,

Hello Bob,
Thanks for that. I went through those but I still do not find answer to my question.


Let’s see if I am understanding your situation properly. You have an SEM image that shows 4 classes of pores. For each of those classes and for the union of them, you would like to get volume fraction, aspect ratio, and shape factor. Is that correct?

The first question is, do you already have a way to segment the different classes of pores? Unless you can do that, it will be hard (or at least time consuming) to attempt data collection. The second question is what do you mean by aspect ration and shape factor?

In the thread that smith_robertj referred you to (here), I mentioned the BoneJ plugin. Depending on what your definitions are, that may be all you need.

O.K. then Moteb9867,
If you checked out even the point about ‘self similar patterns’ then your image may be different than those used in the post. If so can and will you send an example image to work with so that we may better handle your inquiries?
Also the point about the ‘choke’ point’ - the following shows the choke point, also termed mode is some images, and that all the points higher (right) is normally considered the surface and those below it (left) are the considered where pores, cracks etc… start forming with the farther to the left the deeper into these that you go. You will have to decide where you want to begin the analysis.
I could help more if I could see an example image.


Hi Andrew,
Thanks for your help and time.
Yes, the is exactly the situation. Unfortunately, I do not know how to segment them as I am new to the software and I have been trying to lean it by myself for more than a month as I need it in my thesis to do some calculations but I could not! Because of that I posted my question to see if I can get some help from experienced people.
What I meant by aspect ratio and shape factor is that these parameters can define the shape of each type of porosity. I have estimated values for these parameters obtained from published paper. These values may help to understand the classification of porosity. I do not have the BoneJ plugin!

I can provide you the SEM image if you like.


Hello Bob,
Thank you very much for all of that. To be honest I am new to ImageJ. I have been trying to learn how to do it for more than a month but no progress!
Here an example image. Plz have a look.


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.

  1. 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.
  2. 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.

Hi Moteb!

Just give me a little while to write the game plan. I’m sure all the info you are requesting can be derived from the image.


Hello Moteb,
Sorry it took so long, got caught up in research of another kind.
Here is a **sample
** of just the pores,cracks etc… you can use it as an overlay if you wish to check but I need you to indicate what is:
*Open orientated randomly pores
*Penney shaped pores
*and Non-flat pores
and send it back because each type of object may have a different spectrum, which you will need to separate types.
The illumination is very off balance, but not so much that it can’t be overcome. Is this object curved, as like a cylinder?
Do you have a large number of images to process? If you do we will work on a macro to speed things up but it isn’t that difficult or time consuming to do.
Play with it and let me know what you think so I may detail the procedure for you to understand what is going on. You cannot hurt anything so have fun.
Type to ya later,

Hi Bob,
Thank you very much for your effort. I really appreciate that. Honestly, I do not know what does the figure you sent mean! and how we can find the different classes from it. Do you have ideas and can read it?
I’ll send you some information for the different type of pores in a file. This may help.
What I know so far from ImageJ is that I can apply a threshold on an image and get the total volume fraction that’s all.
Yes I have more images. I can send them to you later if you like.


honestly this can help everybody here. and as consequence help everybody to help you better…
so please if you could post this pores description here;)

Hi Bob,
Please find some guide to pores description. Please let me know if you have questions about them!
image image image image

F is a numerical value related to the shape of the spheroid.
α is the angle between the axis of revolution and heat flux.
In order to get the shape factor F, we need to obtain the aspect ratio a/c by using Image J. Where, the major axis is (a) and minor axis is ©.
Numbers in Fig 4. Represents:
(1) X-factor for randomly orientated pore.
(2) X-factor for pore parallel to heat flux.
(3) X-factor for pore perpendicular to heat flux.
General Information collected from published paper:

  • To have a reasonable estimation for the shape and size distribution, ImageJ analysis should have a stereological knowledge of cross-section analysis.
  • Fig 5 is an example of classification of different kind of pores based on it directions.
    Hope this hep!


1 Like

Fig 5. a. original SEM imge. b. binary. c. globular pore. d.cracks. e. horizontal crakcs. f. vertical cracks.

Sorry I forgot to add this:
Here are some values of aspect ratio, shape factor and the angle for the different type of defects:
Open randomly oriented; a/c=0.8 F=0.3 α=0 degree
Microcracks; a/c=0.07 F=0.072 α=0 degree
Penny shaped; a/c=0.49 F=2 α=90 degree
Non-flat a/c=0.7 F=0.29 α=0 degree
Interlamellar porosity a/c=0.2 F=0.16 α=0-30 degree

Based on what you have posted, it looks like BoneJ might be what you are looking for. It won’t be able to segment between the different pore types but it will be able to give you what you need to determine shape factor and whatnot. I have never used this particular feature but, if I recall correctly, it does have an option to get the orientations as well.

Hi Andrwe,
Thanks for your reply. So the question is can we get the volume fractions for the different shapes baced on these info?