Memory-efficient and fast implementation of local adaptive binarization methods
Binarization is widely used as an image preprocessing step to separate object especially text from background before recognition. For noisy images with uneven illumination such as degraded documents, threshold values need to be computed pixel by pixel to obtain a good segmentation. Since local threshold values typically depend on moment-based statistics such as mean and variance of gray levels inside rectangular windows, integral images which are memory consuming are commonly used to accelerate the calculation. Observed that moment-based statistics as well as quantiles in a sliding window can be computed recursively, integral images can be avoided without neglecting speed, more binarization methods can be accelerated too. In particular, given a $H\times W$ input image, Sauvola's method and alike can run in $\Theta (HW)$ time independent of window size, while only around $6\min\{H,W\}$ bytes of auxiliary space is needed, which is significantly lower than the $16HW$ bytes occupied by the two integral images. Since the proposed technique enable various well-known local adaptive binarization methods to be applied in real-time use cases on devices with limited resources, it has the potential of wide application.