# Circular Region of Interest before thresholding

I'm trying to detect a circular object in the middle of my images. Here is a sample image. The left half is the greyscaled and Gaussian blurred input image; the right half is the same image after Otsu thresholding. The tiny silver of shadow on the lower left corner is leading the Otsu threshold astray. Is there any way to set a circular region of interest so the corner noises can be avoided?

edit retag close merge delete

Sort by ยป oldest newest most voted

Hi! This problem is classical with global-threshold methods (like Otsu). It's a very difficult task, and to my knowledge, there is no general method to handle this case.

During my thesis, I developed an algorithm for binarization which was focused on text but you can try with your images here : demoFAIR.

As your images have a big amount of blur, I suggest you to use a very low value for K (for instance 0.07), or if you can try with images before you blurred them, it will probably have better results. Of course, I would be happy to give you more details if you think this method worth a try!

more

I would suggest you an adaptive threshold. It is computing a threshold on regions and it will eliminate the problems of shadows. There are two types: Gaussian and K-Means. I would suggest you to try both of them to see which is better for your case. Here is the documentation on python, and here is the documentation for C++, you did not mentioned what you need.

more

The problem with such methods is the window size: taking a too small window will lead on a binary edge map (the interior of the circular object will be white), and taking a too big window will lead to the same problem than Otsu's method...

( 2014-10-28 16:17:21 -0500 )edit

How are your images? Are they having all the same size? If not, then there is a problem in choosing the kernel size, or if the object is not always having almost the same size in the image. Why do you need the binarization, for detection? Can't use that "edge detector" to find the object? Or another idea is to use an Adaptive Histogram Equalization (like CLAHE) and then the binarization

( 2014-10-29 03:17:26 -0500 )edit

Official site

GitHub

Wiki

Documentation

## Stats

Asked: 2014-10-27 14:52:09 -0500

Seen: 811 times

Last updated: Oct 28 '14