
    9i 
                     "    S SK rSSKJr  SS jrg)    N   )dtype_limitsc                    U R                   S:X  a  U ) nU$ [        R                  " U R                   [        R                  5      (       a.  [	        U SS9S   n[        R
                  " X0U R                   S9nU$ [        R                  " U R                   [        R                  5      (       a!  [        R
                  " SX R                   S9nU$ U(       a  U * nU$ [        R
                  " SX R                   S9nU$ )a  Invert an image.

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)
array([[155, 255,  55],
       [255, 205, 255],
       [225, 255,   0]], dtype=uint8)
>>> img2 = np.array([[ -2, 0, -128],
...                  [127, 0,    5]], np.int8)
>>> invert(img2)
array([[   1,   -1,  127],
       [-128,   -1,   -6]], dtype=int8)
>>> img3 = np.array([[ 0., 1., 0.5, 0.75]])
>>> invert(img3)
array([[1.  , 0.  , 0.5 , 0.25]])
>>> img4 = np.array([[ 0., 1., -1., -0.25]])
>>> invert(img4, signed_float=True)
array([[-0.  , -1.  ,  1.  ,  0.25]])
boolF)clip_negativer   )dtype)r   np
issubdtypeunsignedintegerr   subtractsignedinteger)imagesigned_floatinvertedmax_vals       T/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/skimage/util/_invert.pyinvertr      s    r {{f6 O 
u{{B$6$6	7	7uE:1=;;wU[[A O 
u{{B$4$4	5	5;;r5< O	 vH O {{1e;;?HO    )F)numpyr
   r   r   r    r   r   <module>r      s     Er   