algorithmimage-processingmathematical-morphology

Algorithm for ring or hollow artifact detection in binary images


Does anyone know of an algorithm that can detect rings or hollow objects, and their respective pixel sets for binary images?

I'd rather it be automatic due to the sheer number and minute size the of hollow artefacts (fingerprints processed with boundary extraction).

I'm currently working out a pixel connection algorithm that should give results, however it is by no means efficient in terms of performance.


Solution

  • Have you tried using something like OpenCV's cvFindContours?

    Here is an example that uses it to locate ellipses/circles. I don't think it would be very difficult to extend it to look for rings -- you would just have to match up two contours of different sizes with approximately the same center.

    If you're after a framework-agnostic approach, then have a read of the paper that cvFindContours is based on:

    "Topological structural analysis of digitized binary images by border following" Satoshi Suzuki and Keiichi Abe. [suzuki85]