{ } Raw JSON

bundles / skimage 0.26.1rc0.dev0+git20260530.b607368ff / skimage / util / _invert / invert

function

skimage.util._invert:invert

source: /dev/scikit-image/src/skimage/util/_invert.py :5

Signature

def   invert ( image signed_float = False )

Summary

Invert an image.

Extended Summary

Invert the intensity range of the input image, so that the dtype maximum is now the dtype minimum, and vice-versa. This operation is slightly different depending on the input dtype:

  • unsigned integers: subtract the image from the dtype maximum

  • signed integers: subtract the image from -1 (see Notes)

  • floats: subtract the image from 1 (if signed_float is False, so we assume the image is unsigned), or from 0 (if signed_float is True).

See the examples for clarification.

Parameters

image : ndarray

Input image.

signed_float : bool, optional

If True and the image is of type float, the range is assumed to be [-1, 1]. If False and the image is of type float, the range is assumed to be [0, 1].

Returns

inverted : ndarray

Inverted image.

Notes

Ideally, for signed integers we would simply multiply by -1. However, signed integer ranges are asymmetric. For example, for np.int8, the range of possible values is [-128, 127], so that -128 * -1 equals -128! By subtracting from -1, we correctly map the maximum dtype value to the minimum.

Examples

img = np.array([[100,  0, 200],
                [  0, 50,   0],
                [ 30,  0, 255]], np.uint8)
invert(img)
img2 = np.array([[ -2, 0, -128],
                 [127, 0,    5]], np.int8)
invert(img2)
img3 = np.array([[ 0., 1., 0.5, 0.75]])
invert(img3)
img4 = np.array([[ 0., 1., -1., -0.25]])
invert(img4, signed_float=True)

Aliases

  • skimage.util.invert

Referenced by