Finding Large Arcs in an Image

Hi,
I have a BW image containing large arcs. I was thinking of using imfindcircles to detect them, but their centers are certainly off the image because the radii are quite large. Any ideas on what would be the best way to detect these curves?
-Jen

Answers (1)

Image Analyst
Image Analyst on 13 Jun 2013
Can we see your image? Where did you upload it to?

5 Comments

There's a ton of noise and the curves are broken. As long as you don't have hundreds of images, I'd probably just manually specify each arc with ginput() and then fit a circle to it using the FAQ: http://matlab.wikia.com/wiki/FAQ#How_can_I_fit_a_circle_to_a_set_of_XY_data.3F
I do have hundreds of images, unfortunately. I'm working on reducing the noise- that I can manage eventually. With voting based methods like imfindcircles, it shouldn't matter that the curves are broken, but I need imfindcircles to be a bit more flexible in terms of the center of the circle.
Where did you upload your image? That said, I can't spend much time on it if it's complicated. I might be able to spend 5 minutes or give you advice but if it's so complicated that it's the basis of your thesis, then I can't spend that much time obviously.
Hi,
I'm sorry, I don't think I have it set up to notify me when there are comments yet. Here is a sample image:
I started trying to implement my own hough circle based code that didn't have that restriction on the circle's center, but that's pretty difficult. I started running out of memory very quickly with my 3D accumulators. Any other ideas on approaches? Thanks!
-Jen
That's really easy. Just binarize it if it's not already
binaryImage = grayImage > 255;
Then find the coordinates
[rows, columns] = find(binaryImage);
Then use the FAQ to fit to a circle:

Sign in to comment.

Asked:

on 13 Jun 2013

Community Treasure Hunt

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

Start Hunting!