Recognizing shapes in (binary) matrix

Hey all,
I'm trying to find a shape in a binary image.
In order to do that i am using bwboundaries() function to identify all the shapes in the image. I get a cell with matrices (the size of X by 2), of all the objects. Each matrix represent the number of pixels in the object.
For example, lets say there are two matrices, almost the same size. One representing the shape of a line, the other the shape of a circle (not exactly a line or a circle).
My question is - can i differ the line from the circle ?
Any help appreciated.
Yair

 Accepted Answer

Doug Hull
Doug Hull on 10 Jun 2013
If you KNOW that you are either dealing with a line or a circle, then could you look at the MajorAxisLength and MinorAxisLength from RegionProps. Their ratios should be wildly different, yes?
Doug

3 Comments

Also: EquivalentDiameter v. MajorAxisLength
Thank you both.
Gonna try this now and let you know.
Worked like a charm!
If anyone stumbles across this, you could do:
STATS1(1).MajorAxisLength / STATS2(1).MinorAxisLength;
to get the ratio of the two axis (where STATS1=regionprops(h, 'MajorAxisLength'), and STATS2 is the minor axis).

Sign in to comment.

More Answers (0)

Categories

Asked:

on 10 Jun 2013

Community Treasure Hunt

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

Start Hunting!