The implemented Sauvola method uses integral images for fast computation of the threshold function.
The Sauvola method is described in:
J. Sauvola and M. Pietikainen, Adaptive document image binarization, Pattern Recognition 33, 2000. - http://www.mediateam.oulu.fi/publications/pdf/24.pdf
The modification which uses integral images providing a 20-fold speedup (according to the paper) is described in this paper:
F. Shafait, D. Keysers, and T. M. Breuel, Efficient implementation of local adaptive thresholding techniques using integral images, Document Recognition and Retrieval XV, 2008 - http://www.dfki.uni-kl.de/~shafait/papers/Shafait-efficient-binarization-SPIE08.pdf
A paper evaluating binarization methods:
P. Stathis, E. Kavallieratou and N. Papamarkos - An Evaluation Technique for Binarization Algorithms, Journal of Universal Computer Science, 2008, - http://www.papamarkos.gr/uploaded-files/An%20Evaluation%20Technique%20for%20Binarization%20Algorithms.pdf
Jan Motl (2021). Sauvola local image thresholding (https://www.mathworks.com/matlabcentral/fileexchange/40266-sauvola-local-image-thresholding), MATLAB Central File Exchange. Retrieved .
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Create scripts with code, output, and formatted text in a single executable document.
Thank you for sharing this.
I get totally white image (I can send you the image, but don't know how to append it to this)....what could be going wrong?
Thanks.
A question, ... why the output does not change by changing the neighborhood or thresholding?
@mohamed abu eita: I tested the code in MATLAB 2015a on OS X 10.11 and it still works.
@Sara: ImageJ uses a circular local window, instead of a rectangular one. See:
https://github.com/fiji/Auto_Threshold/blob/master/src/main/java/fiji/threshold/Auto_Local_Threshold.java
Good Work
Thank you for this, nicely done.
Thank you so much!
It helps me a lot!
Thank you so much!
All your set of adaptive thresholding scripts is amazing.
Great work. It's very appreciated.
Hi i want to run this code on matlab 2015 but not run
I have ImageJ software which has a adaptive thresholding tools and sauvola's method, But I didnt get the same results!
can anyone please tell me why the results is different??
I do appreciated you for what you have done, your codes are great, thanks a lot and again.