'Combines an rgb image with an intensity map using "overlay" blending.
Parameters
rgb : ndarray
An MxNx3 RGB array of floats ranging from 0 to 1 (color image).
intensity : ndarray
An MxNx1 array of floats ranging from 0 to 1 (grayscale image).
Returns
rgb : ndarray
An MxNx3 RGB array representing the combined images.'

def blend_overlay(self, rgb, intensity):

    low = ((2 * intensity) * rgb)
    high = (1 - ((2 * (1 - intensity)) * (1 - rgb)))
    return np.where((rgb <= 0.5), low, high)
