I am using the cvThresholding() routine from the OpenCV library to perform binarisation using Otsu’s thresholding method. At times the approach fails which is understandable since Otsu calculates a single threshold for the entire image. To improve the results, I decided to breakdown the image into grid and then perform Otsu binarisation on each section of the grid. The results now seem encouraging, however the grid based partitioning makes the output binary image discontinuous in nature especially at the edges of the grid. Is there a way to resolve this?
Kindly NOTE that this approach works best for me. I am aware of the adaptive thresholding option available in opencv and that does not seem to work for me since its way too sensitive as compared to the Otsu’s binarisation approach.
Awaiting a response. Thanks in advance.
Simplest would probably be to interpolate the thresholds between the centers of the grids. Although the threshold image would be discontinuous (in gradient, not in magnitude), it’s less likely to show up in the end result.