Averaging the object in multiple images

I have a circular shape-like object in multiple images. The location of centroid of the objects are same but size (~radius) varies. How can I get an average of the size of all the objects and display it in a new image? The sum of the images divided by the number of images gives the average of the pixel values of the objects and not the pixel location (i.e. size of the object). Thank you for your help.

Answers (1)

Vinit, I have a demo that does exactly that.
The attached demo takes a pseudo-periodic array of shapes (a chain link fence) and determines the "Average" shape and identifies the one with the closest-to-average shape.

5 Comments

Thank you very much for sharing the code.
Thanks Image Analyst! You are awesome!
Hello @Image Analyst , If I have numberOfShapes=2 in my case, it does not work well then. The result is smaller one of the two shapes instead of average shape. Could you please check? Or am I doing any mistake?
Thank you.
@Image Analyst Please have a look at the code attached along with the result output for reference.
Thank you
props = regionprops(mask, 'EquivDiameter');
allDiameters = [props.EquivDiameter]
Attach your images separately if you can't figure it out.
@Image Analyst I do not have circular-shaped objects, instead I have something similar to your blobs shape. So, 'EquivDiameter' properties won't be a good solution. Just to show that when number of shapes=2, the averaging does not work as in your code, I gave a simple example of circular objects.

Sign in to comment.

Products

Release

R2020b

Asked:

on 19 Apr 2021

Commented:

on 21 Apr 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!