使用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 相关文章推荐
python将xml xsl文件生成html文件存储示例讲解
Dec 03 Python
Python读取指定目录下指定后缀文件并保存为docx
Apr 23 Python
Python采集代理ip并判断是否可用和定时更新的方法
May 07 Python
python实现人人自动回复、抢沙发功能
Jun 08 Python
python实现tail实时查看服务器日志示例
Dec 24 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
Sep 17 Python
Python对Tornado请求与响应的数据处理
Feb 12 Python
Python PyQt5整理介绍
Apr 01 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
May 18 Python
Python Flask请求扩展与中间件相关知识总结
Jun 11 Python
用Python可视化新冠疫情数据
Jan 18 Python
python index() 与 rindex() 方法的使用示例详解
Dec 24 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
yii框架无限极分类的实现方法
2017/04/08 PHP
清华大学出版的事半功倍系列 javascript全部源代码
2007/05/04 Javascript
jQuery表格插件datatables用法总结
2014/09/05 Javascript
jQuery删除一个元素后淡出效果展示删除过程的方法
2015/03/18 Javascript
举例简介AngularJS的内部语言环境
2015/06/17 Javascript
JavaScript取得键盘按下方向键是哪个的方法
2015/08/04 Javascript
jquery无限级联下拉菜单简单实例演示
2015/11/23 Javascript
javascript用正则表达式过滤空格的实现代码
2016/06/14 Javascript
jQuery弹出层插件popShow(改进版)用法示例
2017/01/23 Javascript
微信小程序分页加载的实例代码
2017/07/11 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
electron中使用bootstrap的示例代码
2018/11/06 Javascript
JS实现简易留言板特效
2019/12/23 Javascript
Node.js API详解之 tty功能与用法实例分析
2020/04/27 Javascript
如何在postman中添加cookie信息步骤解析
2020/06/30 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
Python实现方便使用的级联进度信息实例
2015/05/05 Python
使用C#配合ArcGIS Engine进行地理信息系统开发
2016/02/19 Python
python 自动化将markdown文件转成html文件的方法
2016/09/23 Python
python Matplotlib画图之调整字体大小的示例
2017/11/20 Python
Django项目实战之用户头像上传与访问的示例
2018/04/21 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
python turtle 绘制太极图的实例
2019/12/18 Python
pytorch SENet实现案例
2020/06/24 Python
python如何安装下载后的模块
2020/07/03 Python
python如何实现递归转非递归
2021/02/25 Python
Linux不知道文件后缀名怎么判断文件类型
2014/08/21 面试题
学生党员思想汇报范文
2014/01/09 职场文书
小学教师寄语大全
2014/04/03 职场文书
药剂专业求职信
2014/06/20 职场文书
植树节标语
2014/06/27 职场文书
作弊检讨书
2015/01/27 职场文书
汶川大地震感悟
2015/08/10 职场文书
高中团支书竞选稿
2015/11/21 职场文书
小学思品教学反思
2016/02/20 职场文书
python pyhs2 的安装操作
2021/04/07 Python