I wasn't satisfied with the existing matlab implementations of the Ridler-Calvard algorithm, so I wrote my own.
Besides returning the threshold value, the function can also return the thresholded (binary) image.
The function also allows one to apply a log transform to the image prior to thresholding. The log transform may result in a better threshold, if the variance of the foreground is considerably higher than the variance of the background.
Jake Hughey (2019). Ridler-Calvard image thresholding (https://www.mathworks.com/matlabcentral/fileexchange/44255-ridler-calvard-image-thresholding), MATLAB Central File Exchange. Retrieved .
Added a tolerance to the convergence.
Inspired: Simple Image Thresholding