This EnhanceLocal Method enhances an image using the local standard deviation and mean.
It transforms the input image f(x, y) to a new image g(x, y) based on the following formula,
g(x, y) = A(x, y) * [f(x, y) - m(x, y)] + m(x, y)
where,
A(x, y) = k * M / sigma(x, y), with k being a scaling factor within the range [0, 1], m(x, y) and sigma(x, y) being the local mean and local standard deviation, and M being the global mean of the input image.
To avoid the problem of spikes caused by too small local standard deviation, a check against the minimum allowed standard deviation is performed. If the local standard deviation is too small, the minimum allowed instead will be used in the calculation.
Can be applied only to 8-bit grayscale images with one channel.