使用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解析json实例方法
Nov 19 Python
python 字典(dict)遍历的四种方法性能测试报告
Jun 25 Python
Python中最常用的操作列表的几种方法归纳
Apr 24 Python
使用Django启动命令行及执行脚本的方法
May 29 Python
python实现人人自动回复、抢沙发功能
Jun 08 Python
Python http接口自动化测试框架实现方法示例
Dec 06 Python
Python3 max()函数基础用法
Feb 19 Python
python格式化输出保留2位小数的实现方法
Jul 02 Python
django框架面向对象ORM模型继承用法实例分析
Jul 29 Python
Python facenet进行人脸识别测试过程解析
Aug 16 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
Oct 12 Python
python通过新建环境安装tfx的问题
May 20 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定义数组和使用示例(php数组的定义方法)
2014/03/29 PHP
php导出csv文件,可导出前导0实例代码
2016/11/16 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
(转载)JavaScript中匿名函数,函数直接量和闭包
2007/05/08 Javascript
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
javascript实现模拟时钟的方法
2015/05/13 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
2015/10/15 Javascript
整理Javascript函数学习笔记
2015/12/01 Javascript
实例详解JavaScript获取链接参数的方法
2016/01/01 Javascript
BootStrap实用代码片段之一
2016/03/22 Javascript
JavaScript核心语法总结(推荐)
2016/06/02 Javascript
canvas压缩图片转换成base64格式输出文件流
2017/03/09 Javascript
Angular使用$http.jsonp发送跨站请求的方法
2017/03/16 Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
2018/01/04 Javascript
解析vue data不可以使用箭头函数问题
2018/07/03 Javascript
Vue的Options用法说明
2020/08/14 Javascript
three.js如何实现3D动态文字效果
2021/03/03 Javascript
[01:35]辉夜杯战队访谈宣传片—LGD
2015/12/25 DOTA
[49:35]LGD vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
[08:06]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant 选手采访
2021/03/11 DOTA
python的类方法和静态方法
2014/12/13 Python
在Python的Django框架中simple-todo工具的简单使用
2015/05/30 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
2018/04/18 Python
TensorFlow实现iris数据集线性回归
2018/09/07 Python
python实现连续图文识别
2018/12/18 Python
利用Python绘制有趣的万圣节南瓜怪效果
2019/10/31 Python
python 实现绘制整齐的表格
2019/11/18 Python
python定间隔取点(np.linspace)的实现
2019/11/27 Python
CSS3制作圆角图片和椭圆形图片
2016/07/08 HTML / CSS
浅谈css3中的渐进增强和优雅降级
2017/12/01 HTML / CSS
11月红领巾广播稿
2014/01/17 职场文书
九年级科学教学反思
2014/01/29 职场文书
反对形式主义、官僚主义、享乐主义和奢靡之风整改措施
2014/09/17 职场文书
个人催款函范文
2015/06/24 职场文书
初中数学教学随笔
2015/08/15 职场文书
2016学雷锋优秀志愿者事迹材料
2016/02/25 职场文书