Deterministically radomize jpeg encoding quality for inducing jpeg noise.
tf.image.stateless_random_jpeg_quality(
image, min_jpeg_quality, max_jpeg_quality, seed
)
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.
|