ó
    Eñi 
  ã                   ó"   • 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       ÚQ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/skimage/util/_invert.pyÚinvertr      sÎ   € ðr ‡{�{�fÓØ�6ˆð €Oô 
�Š�u—{‘{¤B×$6Ñ$6×	7Ñ	7Ü˜u°EÑ:¸1Ñ=ˆÜ—;’;˜w°U·[±[ÑAˆð €Oô 
�Š�u—{‘{¤B×$4Ñ$4×	5Ñ	5Ü—;’;˜r 5·±Ñ<ˆð €Oö	 Ø�vˆHð €Oô —{’{ 1 e·;±;Ñ?ˆHØ€Oó    )F)Únumpyr
   r   r   r   © r   r   Ú<module>r      s   ðÛ Ý õEr   