On Nov 29, 9:41=A0pm, Eizo <odpe...@[EMAIL PROTECTED]
> wrote:
> On Nov 29, 10:19=A0pm, serg271 <serg...@[EMAIL PROTECTED]
> wrote:
>
> > On Nov 29, 7:00=A0pm, Eizo <odpe...@[EMAIL PROTECTED]
> wrote:> Hi,
> > > I am looking for some (fast) algorithm to find circles in image.
> > > I understand that there is the usual Matlab routine that use Hugh
> > > transform, but it is slow, and I need some other fast solution.
> > > any ideas?
>
> > I would suggest just brute-force it. Make edge detection, or
> > thresholding/segmentation. After that for each contour (closed edge or
> > segment boundary) check if it circle or not - for example calculate
> > center (average) and average radial error. Works pretty well for
> > convex polygons.
>
> Well, I am using a picture, that isn't super clear (e.g could be
> places where the edge isn't closed )
> also I think that computing whatever a contour is closed or not is
> very time consuming ( correct me if I Am wrong here..)
> and I need something that work =A0very fast.
You don't really need to check if the contour is closed.
The strategy Eizo suggested will work well on a contour
that is _almost_ closed, lacking a small segment
(but not if there is a large segment missing or if the
circunference is broken in two or more places).
Also, you can improve the results in several ways:
- Preprocess the original image to remove noise
- Choose well the edge detector that is better suited
for your task (sounds like Canny's algorithm might
help).
- After segmentation, use morphological operations
(closing should be useful) to have more compact,
better connected components.
Also, posting an example image will help us with
the specifics of your problem.


|