开发者

Implementing a localised Otsu binarisation

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 th开发者_开发技巧e 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.


What if you tried moving window instead of griding? For example, for each pixel, binarize based upon threshold value obtained for a 5x5 or 7x7 patch centered on this pixel (with appropriate wrapping at the edges).

A moving window will make the threshold change gradually and continuously across the image.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜