From: rmc256 on
I have an image with several "circles", they actually have some irregularities (bumps around edges, connections with neighboring circles, etc.). I would like to get a best fit of a circle to these shapes. I have seen the "Measuring the Radius of a Roll of Tape" demo, but I can't seem to figure out the best way to work with a shape that isn't a perfect circle.
To remove the connections between circles, I tried using :
se=strel('disk',20);
bwnew=imopen(bw,se);
This works OK, but the output shapes are all octagon like, and some are significantly smaller than the "circle" it represents.
Any ideas/suggestions?
From: Ashish Uthama on
On Tue, 25 May 2010 00:58:03 -0400, rmc256 <rmc256(a)gmail.com> wrote:

> I have an image with several "circles", they actually have some
> irregularities (bumps around edges, connections with neighboring
> circles, etc.). I would like to get a best fit of a circle to these
> shapes. I have seen the "Measuring the Radius of a Roll of Tape" demo,
> but I can't seem to figure out the best way to work with a shape that
> isn't a perfect circle.
> To remove the connections between circles, I tried using :
> se=strel('disk',20);
> bwnew=imopen(bw,se);
> This works OK, but the output shapes are all octagon like, and some are
> significantly smaller than the "circle" it represents.
> Any ideas/suggestions?

Helps to post an image. (picasa/flickr/dropio/cssm google repository)
From: rmc256 on
"Ashish Uthama" <first.last(a)mathworks.com> wrote in message <op.vc9e86r5a5ziv5(a)uthamaa.dhcp.mathworks.com>...
> On Tue, 25 May 2010 00:58:03 -0400, rmc256 <rmc256(a)gmail.com> wrote:
>
> > I have an image with several "circles", they actually have some
> > irregularities (bumps around edges, connections with neighboring
> > circles, etc.). I would like to get a best fit of a circle to these
> > shapes. I have seen the "Measuring the Radius of a Roll of Tape" demo,
> > but I can't seem to figure out the best way to work with a shape that
> > isn't a perfect circle.
> > To remove the connections between circles, I tried using :
> > se=strel('disk',20);
> > bwnew=imopen(bw,se);
> > This works OK, but the output shapes are all octagon like, and some are
> > significantly smaller than the "circle" it represents.
> > Any ideas/suggestions?
>
> Helps to post an image. (picasa/flickr/dropio/cssm google repository)

Link to image in question:
http://picasaweb.google.com/lh/photo/p3IQq1SVinPzfxIbHQJnxg?feat=directlink
From: ImageAnalyst on
Did you try "marker controlled watershed segmentation"? I think
MATLAB has a demo for that. Then just get the centroid, and the
"equivalent circular diameter" by using the area (setting it equal to
pi*ECD^2/4) and then you're done.