def colormap(x, col0=None, col1=None): """Colorize a 2D grayscale array. Arguments: * x:an NxM array with values in [0,1]. * col0=None: a tuple (H, S, V) corresponding to color 0. By default, a rainbow color gradient is used. * col1=None: a tuple (H, S, V) corresponding to color 1. Returns: * y: an NxMx3 array with a rainbow color palette. """ # record values to be removed removed = x == -1 x[np.isnan(x)] = 0. # x -= x.min() # x *= (1. / x.max()) # Set the maximum values above which the max color should be used. max = .1 x = np.clip(x / max, 0., 1.) # Gamma correction. Doesn't look very good. # x = x ** .2 shape = x.shape if col0 is None: col0 = (.67, .91, .65) if col1 is None: col1 = (0., 1., 1.) col0 = np.array(col0).reshape((1, 1, -1)) col1 = np.array(col1).reshape((1, 1, -1)) col0 = np.tile(col0, x.shape + (1, )) col1 = np.tile(col1, x.shape + (1, )) x = np.tile(x.reshape(shape + (1, )), (1, 1, 3)) y = hsv_to_rgb(col0 + (col1 - col0) * x) # value of -1 = black y[removed, :] = 0 # Remove diagonal. n = y.shape[0] y[xrange(n), xrange(n), :] = 0 return y
def colormap(x, col0=None, col1=None): """Colorize a 2D grayscale array. Arguments: * x:an NxM array with values in [0,1]. * col0=None: a tuple (H, S, V) corresponding to color 0. By default, a rainbow color gradient is used. * col1=None: a tuple (H, S, V) corresponding to color 1. Returns: * y: an NxMx3 array with a rainbow color palette. """ # record values to be removed removed = x == -1 x[np.isnan(x)] = 0. # x -= x.min() # x *= (1. / x.max()) # Set the maximum values above which the max color should be used. max = .1 x = np.clip(x / max, 0., 1.) # Gamma correction. Doesn't look very good. # x = x ** .2 shape = x.shape if col0 is None: col0 = (.67, .91, .65) if col1 is None: col1 = (0., 1., 1.) col0 = np.array(col0).reshape((1, 1, -1)) col1 = np.array(col1).reshape((1, 1, -1)) col0 = np.tile(col0, x.shape + (1,)) col1 = np.tile(col1, x.shape + (1,)) x = np.tile(x.reshape(shape + (1,)), (1, 1, 3)) y = hsv_to_rgb(col0 + (col1 - col0) * x) # value of -1 = black y[removed,:] = 0 # Remove diagonal. n = y.shape[0] y[xrange(n), xrange(n), :] = 0 return y
def colormap(x): """Colorize a 2D grayscale array. Arguments: * x:an NxM array with values in [0,1] Returns: * y: an NxMx3 array with a rainbow color palette. """ x = np.clip(x, 0., 1.) # initial and final gradient colors, here rainbow gradient col0 = np.array([.67, .91, .65]).reshape((1, 1, -1)) col1 = np.array([0., 1., 1.]).reshape((1, 1, -1)) col0 = np.tile(col0, x.shape + (1,)) col1 = np.tile(col1, x.shape + (1,)) x = np.tile(x.reshape(x.shape + (1,)), (1, 1, 3)) return hsv_to_rgb(col0 + (col1 - col0) * x)
def colormap(x): """Colorize a 2D grayscale array. Arguments: * x:an NxM array with values in [0,1] Returns: * y: an NxMx3 array with a rainbow color palette. """ x = np.clip(x, 0., 1.) # initial and final gradient colors, here rainbow gradient col0 = np.array([.67, .91, .65]).reshape((1, 1, -1)) col1 = np.array([0., 1., 1.]).reshape((1, 1, -1)) col0 = np.tile(col0, x.shape + (1, )) col1 = np.tile(col1, x.shape + (1, )) x = np.tile(x.reshape(x.shape + (1, )), (1, 1, 3)) return hsv_to_rgb(col0 + (col1 - col0) * x)