<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.21.0/tensorflow/python/ops/image_ops_impl.py#L2160-L2204) |

Adjust the contrast of images by a random factor deterministically.

    tf.image.stateless_random_contrast(
        image, lower, upper, seed
    )

### Used in the notebooks

| Used in the tutorials |
|---|
| - [Data augmentation](https://www.tensorflow.org/tutorials/images/data_augmentation) |

Guarantees the same results given the same `seed` independent of how many
times the function is called, and independent of global seed settings (e.g.
[`tf.random.set_seed`](https://www.tensorflow.org/api_docs/python/tf/random/set_seed)).

<br />

<br />

<br />

| ## Args ||
|---|---|
| `image` | An image tensor with 3 or more dimensions. |
| `lower` | float. Lower bound for the random contrast factor. |
| `upper` | float. Upper bound for the random contrast factor. |
| `seed` | A shape \[2\] Tensor, the seed to the random number generator. Must have dtype `int32` or `int64`. (When using XLA, only `int32` is allowed.) |

<br />

#### Usage Example:

    x = [[[1.0, 2.0, 3.0],
          [4.0, 5.0, 6.0]],
         [[7.0, 8.0, 9.0],
          [10.0, 11.0, 12.0]]]
    seed = (1, 2)
    tf.image.stateless_random_contrast(x, 0.2, 0.5, seed)
    <tf.Tensor: shape=(2, 2, 3), dtype=float32, numpy=
    array([[[3.4605184, 4.4605184, 5.4605184],
            [4.820173 , 5.820173 , 6.820173 ]],
           [[6.179827 , 7.179827 , 8.179828 ],
            [7.5394816, 8.539482 , 9.539482 ]]], dtype=float32)>

<br />

<br />

<br />

| ## Returns ||
|---|---|
| The contrast-adjusted image(s). ||

<br />

<br />

<br />

<br />

| ## Raises ||
|---|---|
| `ValueError` | if `upper <= lower` or if `lower < 0`. |

<br />