TensorFlow中的 tf.image.random_brightness 函数用于将图片的亮度随机调整,它可以用于数据增强等应用场景。
该函数的具体用法如下所示:
tf.image.random_brightness(image, max_delta, seed=None)
其中,参数意义如下:
image
:待调整亮度的图片,类型为Tensor
,形状为[height, width, channels]。max_delta
:最大的亮度变化值,类型为float
,取值范围为[0,1],为0表示不进行亮度调整。seed
:随机种子,用于生成随机数,可选参数,用于控制每一次结果的可重复性。
该函数的返回值是一个形状和输入图片相同的Tensor
类型的亮度变化后的图片。
下面来看一个简单的使用例子:
import tensorflow as tf
import matplotlib.pyplot as plt
image = tf.keras.preprocessing.image.load_img('cat.jpg')
image = tf.keras.preprocessing.image.img_to_array(image)
# 将图片类型转换为float32
image = tf.cast(image, tf.float32)
# 调整亮度
image = tf.image.random_brightness(image, max_delta=0.5)
# 显示处理后的图片
plt.imshow(tf.keras.preprocessing.image.array_to_img(image))
plt.show()
在这个例子中,我们先加载一张名为cat.jpg
的图片,然后将其转换为Tensor
类型,接着将图片类型转换为float32
,最后使用 tf.image.random_brightness
调整亮度,并使用 matplotlib 显示处理后的图片。运行以上代码,我们可以获得一张随机调整亮度后的图片。
我们再来看一个更加具体的实例:
import tensorflow as tf
import matplotlib.pyplot as plt
from tensorflow.python.framework.ops import disable_eager_execution
disable_eager_execution()
image = tf.keras.preprocessing.image.load_img('cat.jpg')
image = tf.keras.preprocessing.image.img_to_array(image)
# 将图片类型转换为float32
image = tf.cast(image, tf.float32)
# 调整亮度
image1 = tf.image.random_brightness(image, max_delta=0.2, seed=1)
image2 = tf.image.random_brightness(image, max_delta=0.2, seed=2)
# 显示原图片及两张亮度随机调整后的图片
plt.subplot(131)
plt.imshow(tf.keras.preprocessing.image.array_to_img(image))
plt.subplot(132)
plt.imshow(tf.keras.preprocessing.image.array_to_img(image1))
plt.subplot(133)
plt.imshow(tf.keras.preprocessing.image.array_to_img(image2))
plt.show()
在这个例子中,我们同样加载一张名为cat.jpg
的图片,并将其转换为Tensor
类型,接着将图片类型转换为float32
。然后我们使用seed
参数生成两张亮度随机调整的图片,并使用 matplotlib
显示原图片和两张调整后的图片。由于调整亮度的种子不同,所以生成的两张调整后的图片也不同。