MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by Safaa on 5 Dec 2012

Hi all:

I am trying to calculate perimeter of regions in binary image using matlab. I am using the following code:

perimeter_stats = regionprops(binary_image,'Perimeter');

allPerimeter= [perimeter_stats.Perimeter];

The problem is in the results. The image contains large regions but the calculated perimeter is small (e.g. 3.2092). Can anyone help me in getting the right values of perimeter?

Regards,

Safaa

Answer by Image Analyst on 5 Dec 2012

Accepted answer

Well you did something wrong. I doubt that the mean of allPerimeter is 3.2092 pixels. Why don't you list what allPerimeter is so I can see it. I would think that the minimum a perimeter could be is 1 pixel, but it's typically in the hundreds or thousands, not 3 unless your binary image is just a single dot.

Show 2 older comments

Image Analyst on 7 Dec 2012

Did you notice the 1.0e003 in there? You multiply that by the numbers. This is not related to regionprops - that is how all of MATLAB works. So the actual perimeters are [3209.2, 802.9, 992.9, 189.5, etc. These are quite reasonable numbers. There is no problem at all.

Image Analyst on 9 Dec 2012

So did that answer your question? Are you ready to mark this as "Answered", or is it still not solved for you?

## 0 Comments