我就废话不多说了,大家还是直接看代码吧~
#!/usr/bin/env python # encoding: utf-8 ''' @author: lele Ye @contact: 1750112338@qq.com @software: pycharm 2018.2 @file: 13mnist.py @time: 2018/12/17 10:23 @desc: ''' import tensorflow as tf import scipy.misc import matplotlib.pyplot as plt import random # 读取图像可任意大小 filenames = ['./tianchi.jpg'] # 创建文件读取队列 filename_queue = tf.train.string_input_producer(filenames) # 一个阅读器,读取整个文件,返回文件名称key,以及文件中所有的内容value reader = tf.WholeFileReader() # Returns the next record (key, value) pair produced by a reader key, value = reader.read(filename_queue) images = tf.image.decode_jpeg(value) # tf.image.decode_png(value) target_width = target_height = 224 # 裁切图片 with tf.Session() as sess: # Coordinator的使用,用于多线程的协调 coord = tf.train.Coordinator() # 启动所有graph收集到的队列运行器(queuerunners) threads = tf.train.start_queue_runners(coord=coord) height,width,channels = sess.run(tf.shape(images)) offset_height = random.randint(0,height-target_height) offset_width = random.randint(0,width-target_width) reshapeimg = tf.image.crop_to_bounding_box(images, offset_height=offset_height, offset_width=offset_width, target_height=target_height,target_width=target_width) print(type(reshapeimg)) # <class 'tensorflow.python.framework.ops.Tensor'> reimg1 = reshapeimg.eval() # reimg1的类型是<class 'numpy.ndarray'> scipy.misc.imsave('./crop.jpg', reimg1) plt.imshow(reimg1) plt.axis("off") plt.show() # 请求线程结束 coord.request_stop() # 等待线程终止 coord.join(threads)
原始图像480x320x3:
裁剪后224x224x3:
补充知识:Tensorflow 图像增强(ImageDataGenerator)
当我们训练一个较为复杂的网络,并且我们的训练数据集有限时,网络十分容易陷入过拟合的状态。
解决这个问题的一个可能的有效方法是:进行数据增强,即通过已有的有限的数据集,通过图像处理等方法(旋转,剪切,缩放…),获得更多的,类似的,多样化的数据。
数据增强处理,不会占用更多的存储空间,即在数据增强过程中,原始的数据不会被修改,所有的处理过程都是在内存中 即时(on-the-fly) 的处理。
注意:
数据增强不一定是万能药(虽然数据多了),数据增强提高了原始数据的随机性,但是若 测试集或应用场景 并不具有这样的随机性,那么它将不会起到作用,还会增加训练所需的时间。
使用方法:
train_datagen = ImageDataGenerator( rescale=1./255, #数据值除以255,[0-255] ->[0,1] shear_range=0.2, #剪切强度(逆时针方向的剪切角度,以度为单位) zoom_range=0.2, #随机缩放范围 horizontal_flip=True) #水平翻转 test_datagen = ImageDataGenerator(rescale=1./255) train_generator = train_datagen.flow_from_directory( 'data/train', target_size=(150, 150), batch_size=32, class_mode='binary') validation_generator = test_datagen.flow_from_directory( 'data/validation', target_size=(150, 150), batch_size=32, class_mode='binary') model.fit_generator( train_generator, steps_per_epoch=2000, epochs=50, validation_data=validation_generator, validation_steps=800)
以上这篇tensorflow图像裁剪进行数据增强操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 【雨果唱片】中国管弦乐《鹿回头》WAV
- APM亚流新世代《一起冒险》[FLAC/分轨][106.77MB]
- 崔健《飞狗》律冻文化[WAV+CUE][1.1G]
- 罗志祥《舞状元 (Explicit)》[320K/MP3][66.77MB]
- 尤雅.1997-幽雅精粹2CD【南方】【WAV+CUE】
- 张惠妹.2007-STAR(引进版)【EMI百代】【WAV+CUE】
- 群星.2008-LOVE情歌集VOL.8【正东】【WAV+CUE】
- 罗志祥《舞状元 (Explicit)》[FLAC/分轨][360.76MB]
- Tank《我不伟大,至少我能改变我。》[320K/MP3][160.41MB]
- Tank《我不伟大,至少我能改变我。》[FLAC/分轨][236.89MB]
- CD圣经推荐-夏韶声《谙2》SACD-ISO
- 钟镇涛-《百分百钟镇涛》首批限量版SACD-ISO
- 群星《继续微笑致敬许冠杰》[低速原抓WAV+CUE]
- 潘秀琼.2003-国语难忘金曲珍藏集【皇星全音】【WAV+CUE】
- 林东松.1997-2039玫瑰事件【宝丽金】【WAV+CUE】