SciPy

scipy.misc.bytescale

scipy.misc.bytescale(*args, **kwds)

bytescale is deprecated! bytescale is deprecated in SciPy 1.0.0, and will be removed in 1.2.0.

Byte scales an array (image).

Byte scaling means converting the input image to uint8 dtype and scaling the range to (low, high) (default 0-255). If the input image already has dtype uint8, no scaling is done.

This function is only available if Python Imaging Library (PIL) is installed.

Parameters:
data : ndarray

PIL image data array.

cmin : scalar, optional

Bias scaling of small values. Default is data.min().

cmax : scalar, optional

Bias scaling of large values. Default is data.max().

high : scalar, optional

Scale max value to high. Default is 255.

low : scalar, optional

Scale min value to low. Default is 0.

Returns:
img_array : uint8 ndarray

The byte-scaled array.

Examples

>>> from scipy.misc import bytescale
>>> img = np.array([[ 91.06794177,   3.39058326,  84.4221549 ],
...                 [ 73.88003259,  80.91433048,   4.88878881],
...                 [ 51.53875334,  34.45808177,  27.5873488 ]])
>>> bytescale(img)
array([[255,   0, 236],
       [205, 225,   4],
       [140,  90,  70]], dtype=uint8)
>>> bytescale(img, high=200, low=100)
array([[200, 100, 192],
       [180, 188, 102],
       [155, 135, 128]], dtype=uint8)
>>> bytescale(img, cmin=0, cmax=255)
array([[91,  3, 84],
       [74, 81,  5],
       [52, 34, 28]], dtype=uint8)