Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Segmenting circle-like shapes out of Binary Image

I have several binary images and my task is to segment circle-like shape. The circles are not perfect rounded circle, but all of them will look like circle. Here are some example images and what I need:

enter image description here

As you can see from above, the left images are original images, and the right images are what I need to do. The circles intersect with other shapes, but I only want the circle, as indicated in red. The imaginary lines to close the circle will be required. What can I do in this case in Image Processing?

EDIT: in case, the image above is broken, here: http://imageshack.us/photo/my-images/835/circleonly.jpg/

like image 587
Karl Avatar asked Aug 08 '11 16:08

Karl


2 Answers

Do you know the radii of the disks you are looking for? If yes, morphological openings (erosion then dilation) would be straightforward, and very fast. The result using Mathematica:

Opening[img, DiskMatrix[15]]

enter image description here

If not, as other proposed, computing the contour image and then using the Hough transform would be a method worth pursuing. The image just above shows the contour image.

like image 121
Matthias Odisio Avatar answered Nov 17 '22 03:11

Matthias Odisio


You can use hough transform, first you need is the edge image then you use a hough transform like you can see in this papers

http://www.cis.rit.edu/class/simg782/lectures/lecture_10/lec782_05_10.pdf

http://www.sci.utah.edu/~gerig/CS6640-F2010/FINALPROJECT/Ballard-GHT-1981.pdf

http://www.sciencedirect.com/science/article/pii/003132039290064P

http://www.markschulze.net/java/hough/

like image 34
crodriguezo Avatar answered Nov 17 '22 03:11

crodriguezo