使用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下paramiko模块实现ssh连接登录Linux服务器
Jun 03 Python
LRUCache的实现原理及利用python实现的方法
Nov 21 Python
python使用logging模块发送邮件代码示例
Jan 18 Python
Django中针对基于类的视图添加csrf_exempt实例代码
Feb 11 Python
使用Django开发简单接口实现文章增删改查
May 09 Python
Python定时任务APScheduler的实例实例详解
Jul 22 Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
Feb 13 Python
打印tensorflow恢复模型中所有变量与操作节点方式
May 26 Python
Python devel安装失败问题解决方案
Jun 09 Python
python 使用多线程创建一个Buffer缓存器的实现思路
Jul 02 Python
python的dict判断key是否存在的方法
Dec 09 Python
Python 发送SMTP邮件的简单教程
Jun 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
在PHP中使用与Perl兼容的正则表达式
2006/11/26 PHP
PHP的mysqli_ssl_set()函数讲解
2019/01/23 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
2020/12/29 PHP
解决FLASH需要点击激活的代码
2006/12/20 Javascript
用正则表达式 动态创建/增加css style script 兼容IE firefox
2009/03/10 Javascript
asp.net 30分钟掌握无刷新 Repeater
2011/09/16 Javascript
cookie中的path与domain属性详解
2013/12/18 Javascript
js判断设备是否为PC并调整图片大小
2014/02/12 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
2014/06/29 Javascript
script标签属性用type还是language
2015/01/21 Javascript
jQuery中判断对象是否存在的方法汇总
2016/02/24 Javascript
深入探究JavaScript中for循环的效率问题及相关优化
2016/03/13 Javascript
JS针对浏览器窗口关闭事件的监听方法集锦
2016/06/24 Javascript
Js操作DOM元素及获取浏览器高宽的简单方法
2016/09/08 Javascript
利用js编写响应式侧边栏
2016/09/17 Javascript
Vue 页面切换效果之 BubbleTransition(推荐)
2018/04/08 Javascript
es6数组之扩展运算符操作实例分析
2020/04/25 Javascript
jQuery实现倒计时功能完整示例
2020/06/01 jQuery
[03:42]2018完美盛典-《加冕》
2018/12/16 DOTA
python实现SMTP邮件发送功能
2020/06/16 Python
ubuntu安装sublime3并配置python3环境的方法
2018/03/15 Python
Python+pyplot绘制带文本标注的柱状图方法
2019/07/08 Python
Python 内置变量和函数的查看及说明介绍
2019/12/25 Python
如何用python 操作zookeeper
2020/12/28 Python
用Python制作音乐海报
2021/01/26 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
2021/02/22 Python
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
美体小铺英国官网:The Body Shop英国
2017/01/24 全球购物
外贸公司实习自我鉴定
2013/09/24 职场文书
安全资料员岗位职责
2013/12/14 职场文书
幼儿园国庆节活动方案
2014/02/01 职场文书
学校党员对照检查材料
2014/08/28 职场文书
党员弘扬焦裕禄精神思想汇报
2014/09/10 职场文书
协议书范文
2015/01/27 职场文书
行为习惯主题班会
2015/08/14 职场文书
基于PyTorch实现一个简单的CNN图像分类器
2021/05/29 Python