2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > tensorflow图片预处理 随机亮度 旋转 剪切 翻转。

tensorflow图片预处理 随机亮度 旋转 剪切 翻转。

时间:2019-07-25 00:25:52

相关推荐

tensorflow图片预处理 随机亮度 旋转 剪切 翻转。

图像预处理是一个非常简单,通过提高训练数据的多样性,进而对训练模型的召回率,适应性有着非常大的提升作用。

另外在训练时,需要更多的训练次数,比如说我对每张图片进行了一次旋转,那么训练次数就要提高一倍。也就是说训练集多样性增加,同时训练次数也要增加。

代码:

import tensorflow as tffrom scipy import miscimport numpy as np#随机旋转图片def random_rotate_image(image_file, num):with tf.Graph().as_default():tf.set_random_seed(666)file_contents = tf.read_file(image_file)image = tf.image.decode_image(file_contents, channels=3)image_rotate_en_list = []def random_rotate_image_func(image):#旋转角度范围angle = np.random.uniform(low=-30.0, high=30.0)return misc.imrotate(image, angle, 'bicubic')for i in range(num):image_rotate = tf.py_func(random_rotate_image_func, [image], tf.uint8)image_rotate_en_list.append(tf.image.encode_png(image_rotate))with tf.Session() as sess:sess.run(tf.global_variables_initializer())sess.run(tf.local_variables_initializer())results = sess.run(image_rotate_en_list)for idx,re in enumerate(results):with open('data/'+str(idx)+'.png','wb') as f:f.write(re)#随机左右翻转图片def random_flip_image(image_file, num):with tf.Graph().as_default():tf.set_random_seed(666)file_contents = tf.read_file(image_file)image = tf.image.decode_image(file_contents, channels=3)image_flip_en_list = []for i in range(num):image_flip = tf.image.random_flip_left_right(image)image_flip_en_list.append(tf.image.encode_png(image_flip))with tf.Session() as sess:sess.run(tf.global_variables_initializer())sess.run(tf.local_variables_initializer())results = sess.run(image_flip_en_list)for idx,re in enumerate(results):with open('data/'+str(idx)+'.png','wb') as f:f.write(re)#随机变化图片亮度def random_brightness_image(image_file, num):with tf.Graph().as_default():tf.set_random_seed(666)file_contents = tf.read_file(image_file)image = tf.image.decode_image(file_contents, channels=3)image_bright_en_list = []for i in range(num):image_bright = tf.image.random_brightness(image, max_delta=0.3)image_bright_en_list.append(tf.image.encode_png(image_bright))with tf.Session() as sess:sess.run(tf.global_variables_initializer())sess.run(tf.local_variables_initializer())results = sess.run(image_bright_en_list)for idx,re in enumerate(results):with open('data/'+str(idx)+'.png','wb') as f:f.write(re)#随机裁剪图片def random_crop_image(image_file, num):with tf.Graph().as_default():tf.set_random_seed(666)file_contents = tf.read_file(image_file)image = tf.image.decode_image(file_contents, channels=3)image_crop_en_list = []for i in range(num):#裁剪后图片分辨率保持160x160,3通道image_crop = tf.random_crop(image, [160, 160, 3])image_crop_en_list.append(tf.image.encode_png(image_crop))with tf.Session() as sess:sess.run(tf.global_variables_initializer())sess.run(tf.local_variables_initializer())results = sess.run(image_crop_en_list)for idx,re in enumerate(results):with open('data/'+str(idx)+'.png','wb') as f:f.write(re)if __name__ == '__main__':#处理图片,进行20次随机处理,并将处理后的图片保存到输入图片相同的路径下random_brightness_image('data/test.png', 20)

运行效果:

随机裁剪

随机亮度

随机旋转

随机翻转

更多图像处理操作,请查看tensorflow官方文档/tfdoc/api_docs/python/image.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。