The brief idea of the algorithm is that every image's pixel is set to black if its brightness is T percent lower than the average brightness of the surrounding pixels in the window of the specified size, otherwise it is set to white. The detail description of the algorithm is available at:
Derek Bradley, Gerhard Roth (2005). Adaptive Thresholding Using the Integral Image. Retrieved from http://www.scs.carleton.ca/~roth/iit-publications-iti/docs/gerh-50002.pdf
The advantage of this method is that the binarized images are subjectively almost as good as from Sauvola's method but the calculation is two times faster than Sauvola's method. Sauvola’s method calculates local mean and local variance, while Bradley’s method calculates just local mean. And because the variance can be calculated using following formula for variance:
Var(X) = E(X^2) – [E(X)]^2,
the calculation of variance reuses the result from the calculation of the local mean (E(X))^2 and just calculates E(X^2). And that takes the same amount of time as calculation of the local mean. Since calculation of local mean and variance is the most time consuming operation performed by these two methods, Bradley’s method is effectively two times faster than Sauvola’s method. A brief comparison of Bradley’s and Sauvola’s method is available at a blog:
Altun Nazmi (2010). Adaptive (Local) Thresholding For AForge.NET. Retrieved from http://nazmialtun.blogspot.com/2010/10/adaptive-local-thresholding-for.html
The calculation of the local mean is performed with integral image method in constant time regardless of the kernel size.
Examples of real word applications are: bar-code scanners, license plate registration. |