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.
Added a tolerance to the convergence.
Inspired: Simple Image Thresholding