TensorFlow的tf.image.random_contrast函数使用攻略
函数作用
tf.image.random_contrast
函数通过随机加入亮度对比度,能够增加图像的多样性,且可以用于数据增广,同时使模型更加健壮,减少过拟合。
使用方法
import tensorflow as tf
image = tf.image.decode_jpeg(tf.io.read_file('test.jpg'))
image_contrast = tf.image.random_contrast(image, lower=0.5, upper=1.5)
参数说明
该函数包含了许多可选参数。下面是各参数的详细说明:
-
image:输入图像,其维度为 [height, width, channels] 或 [height, width, 1]。
-
lower:增加的对比度的下界,以0.0-1.0的浮点数表示,默认为0.0。
-
upper:增加的对比度的上界,以0.0-1.0的浮点数表示,默认为1.0。
-
seed:随机化因子,在图像增强时应设置为随机种子。
-
name:运算的名称。
实例说明
示例一:使用random_contrast调整图片对比度(提高)
import tensorflow as tf
image = tf.image.decode_jpeg(tf.io.read_file('test.jpg'))
image_contrast = tf.image.random_contrast(image, lower=0.2, upper=2.0)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
img, img_con = sess.run([image, image_contrast])
plt.subplot(121)
plt.imshow(img)
plt.title('Original image')
plt.subplot(122)
plt.imshow(img_con)
plt.title('Contrast enhanced image')
在这个示例中,tf.image.random_contrast
函数被用来随机调整测试图像的对比度。随机因子的上下界被设置为0.2和2.0,这样可以让测试图像的对比度在[0.2, 2.0]的范围内变化。这种方式模拟了真实数据变化的情况。在代码运行后,我们得到了一个调整后的图像,其中对比度更加强烈,与原图不同。
示例二:调用tf.image.random_contrast函数调整MNIST手写数据集图片的对比度
import tensorflow as tf
import matplotlib.pyplot as plt
# 加载MNIST数据集
(train_images, train_labels), (_, _) = tf.keras.datasets.mnist.load_data()
image = train_images[0, :, :].reshape([28, 28, 1])
image_contrast = tf.image.random_contrast(image, lower=0.3, upper=1.0)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
image, img_con = sess.run([image, image_contrast])
plt.subplot(121)
plt.imshow(image.reshape([28, 28]))
plt.title('Original image')
plt.subplot(122)
plt.imshow(img_con.reshape([28, 28]))
plt.title('Contrast enhanced image')
plt.show()
这个示例使用tf.image.random_contrast
函数来随机增加MNIST手写数据集中第一个图片的对比度。上限被设置为1.0,下限被设置为0.3。运行这个代码时,我们看到MNIST数据集图像变得更加清晰,同时对比度更佳强烈。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解TensorFlow的 tf.image.random_contrast 函数:随机改变图像对比度 - Python技术站