tf.image.stateless_random_jpeg_quality

Deterministically radomize jpeg encoding quality for inducing jpeg noise.

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).

min_jpeg_quality must be in the interval [0, 100] and less than max_jpeg_quality. max_jpeg_quality must be in the interval [0, 100].

Usage Example:

x = [[[1, 2, 3],
      [4, 5, 6]],
     [[7, 8, 9],
      [10, 11, 12]]]
x_uint8 = tf.cast(x, tf.uint8)
seed = (1, 2)
tf.image.stateless_random_jpeg_quality(x_uint8, 75, 95, seed)
<tf.Tensor: shape=(2, 2, 3), dtype=uint8, numpy=
array([[[ 0,  4,  5],
        [ 1,  5,  6]],
       [[ 5,  9, 10],
        [ 5,  9, 10]]], dtype=uint8)>
Args
image 3D image. Size of the last dimension must be 1 or 3.
min_jpeg_quality Minimum jpeg encoding quality to use.
max_jpeg_quality Maximum jpeg encoding quality to use.
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.)
Returns
Adjusted image(s), same shape and DType as image.
Raises
ValueError if min_jpeg_quality or max_jpeg_quality is invalid.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/image/stateless_random_jpeg_quality