使用TensorFlow对图像进行随机旋转的实现示例


Posted in Python onJanuary 20, 2020

在使用深度学习对图像进行训练时,对图像进行随机旋转有助于提升模型泛化能力。然而之前在做旋转等预处理工作时,都是先对图像进行旋转后保存到本地,然后再输入模型进行训练,这样的过程会增加工作量,如果图片数量较多,生成旋转的图像会占用更多的空间。直接在训练过程中便对图像进行随机旋转,可有效提升工作效率节省硬盘空间。

使用TensorFlow对图像进行随机旋转如下:

TensorFlow版本为1.13.1

#-*- coding:utf-8 -*-
'''
  使用TensorFlow进行图像的随机旋转示例
'''
 
import tensorflow as tf
import numpy as np
import cv2
import matplotlib.pyplot as plt
 
 
img = cv2.imread('tf.jpg')
img = cv2.resize(img,(220,220))
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
 
def tf_rotate(input_image, min_angle = -np.pi/2, max_angle = np.pi/2):
  '''
  TensorFlow对图像进行随机旋转
  :param input_image: 图像输入
  :param min_angle: 最小旋转角度
  :param max_angle: 最大旋转角度
  :return: 旋转后的图像
  '''
  distorted_image = tf.expand_dims(input_image, 0)
  random_angles = tf.random.uniform(shape=(tf.shape(distorted_image)[0],), minval = min_angle , maxval = max_angle)
  distorted_image = tf.contrib.image.transform(
    distorted_image,
    tf.contrib.image.angles_to_projective_transforms(
      random_angles, tf.cast(tf.shape(distorted_image)[1], tf.float32), tf.cast(tf.shape(distorted_image)[2], tf.float32)
    ))
  rotate_image = tf.squeeze(distorted_image, [0])
  return rotate_image
 
global_init = tf.global_variables_initializer()
with tf.Session() as sess:
  init = tf.initialize_local_variables()
  sess.run([init, global_init])
  coord = tf.train.Coordinator()
  threads = tf.train.start_queue_runners(coord=coord)
  image = tf.placeholder(shape=(220, 220, 3), dtype=tf.float32)
 
  rotate_image = tf_rotate(image, -np.pi/2, np.pi/2)
  output = sess.run(rotate_image, feed_dict={image:img})
  # print('output:',output)
  plt.imshow(output.astype('uint8'))
  plt.title('rotate image')
  plt.show()

结果如下:

原图:

使用TensorFlow对图像进行随机旋转的实现示例

随机旋转后的图:

使用TensorFlow对图像进行随机旋转的实现示例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
[原创]pip和pygal的安装实例教程
Dec 07 Python
Python实现读取txt文件并转换为excel的方法示例
May 17 Python
Python嵌套列表转一维的方法(压平嵌套列表)
Jul 03 Python
Python实现两个list求交集,并集,差集的方法示例
Aug 02 Python
Python3数字求和的实例
Feb 19 Python
Python中字符串与编码示例代码
May 20 Python
在python中利用pycharm自定义代码块教程(三步搞定)
Apr 15 Python
python3实现飞机大战
Nov 29 Python
Python控制台输出俄罗斯方块移动和旋转功能
Apr 18 Python
Python os和os.path模块详情
Apr 02 Python
Python+OpenCV实现图片中的圆形检测
Apr 07 Python
Python使用DFA算法过滤内容敏感词
Apr 22 Python
TensorFLow 不同大小图片的TFrecords存取实例
Jan 20 #Python
python各层级目录下import方法代码实例
Jan 20 #Python
Python 识别12306图片验证码物品的实现示例
Jan 20 #Python
如何基于python实现归一化处理
Jan 20 #Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
Jan 20 #Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
Jan 20 #Python
python如何通过pyqt5实现进度条
Jan 20 #Python
You might like
PHP实现的博客欢迎提示功能(很特别哦)
2014/06/05 PHP
PHP中substr_count()函数获取子字符串出现次数的方法
2016/01/07 PHP
Avengerls vs KG BO3 第三场2.18
2021/03/10 DOTA
一些常用的JavaScript函数(json)附详细说明
2011/05/25 Javascript
基于jquery的大众点评,分类导航实现代码
2011/08/23 Javascript
jquery操作 iframe的方法
2014/12/03 Javascript
使用javascript实现判断当前浏览器
2015/04/14 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
浅谈Angular.js中使用$watch监听模型变化
2017/01/10 Javascript
jqGrid翻页时数据选中丢失问题的解决办法
2017/02/13 Javascript
angularjs实现多张图片上传并预览功能
2017/02/24 Javascript
4个顶级开源JavaScript图表库
2018/09/29 Javascript
详解微信小程序开发(项目从零开始)
2019/06/06 Javascript
监控微信小程序中的慢HTTP请求过程详解
2019/07/05 Javascript
Nuxt.js实战和配置详解
2019/08/05 Javascript
vue 组件内获取actions的response方式
2019/11/08 Javascript
js实现带箭头的进度流程
2020/03/26 Javascript
[02:55]2018DOTA2国际邀请赛勇士令状不朽珍藏Ⅲ饰品一览
2018/08/01 DOTA
linux系统使用python获取内存使用信息脚本分享
2014/01/15 Python
python通过urllib2获取带有中文参数url内容的方法
2015/03/13 Python
python写入xml文件的方法
2015/05/08 Python
Sanic框架蓝图用法实例分析
2018/07/17 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
2019/07/04 Python
python列表删除和多重循环退出原理详解
2020/03/26 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
css3 iphone玻璃透明气泡完美实现
2013/03/20 HTML / CSS
韩国三大免税店之一:THE GRAND 中文免税店
2016/07/21 全球购物
Ted Baker英国官网:男士和女士服装及配件
2017/03/13 全球购物
财务学生的职业生涯发展
2014/02/11 职场文书
2014年迎新年活动方案
2014/02/19 职场文书
元旦文艺汇演主持词
2014/03/26 职场文书
年度优秀员工获奖感言
2014/08/15 职场文书
2015年助残日活动总结
2015/03/27 职场文书
采购部2015年度工作总结
2015/07/24 职场文书
送给小学生的暑假礼物!小学生必背99首古诗
2019/07/02 职场文书
纯CSS实现hover图片pop-out弹出效果的实例代码
2021/04/16 HTML / CSS