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

https://www.jb51.net/article/178934.htm

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

使用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()

结果如下:

原图:

随机旋转后的图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434870.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SIP协议详解

SIP协议概念** 会话启动协议SIP(Session Initiation Protocol)是一个在IP网络上进行多媒体通信的应用层控制协议,它被用来创 建、修改、和终结一个或多个参加者参加的会话进程。 **SIP协议可用于发起会话,也可以用于邀请成员加入…

arcgis判断两个字段是否相等

def a(b,c):if(bc):return 1else:return 0 不懂问题请进群交流

深入浅出InfoPath——动态获取InfoPath中的命名空间

问题描述:我们在不同的开发Server和Product环境中部署InfoPath的时候,发现命名空间会随InfoPath的小版本变化而变化。 比如:http://schemas.microsoft.com/office/infopath/2003/myXSD/2011-03-14T09:12:19 处理办法: 使用Linq to…

一元三次方程重根判别式_许兴华——关于复数集中解一元二次方程的问题

在学习复数时,最近有个别比较好学的同学提出一个问题:“对于复数系数一元二次方程,是否可以用求根公式求解呢?”——回答是肯定的!关于复数集中解一元二次方程的问题。其实,在复数集内解关于x的一元二次方程…

arcgis批量将栅格里的nodata转为0

新建模型 修改名称 在arcgis的工具箱中新建一个模型,具体模型如下 模型里的具体参数如下 1.栅格计算器 2.输出路径,%—%这样的的输出可以保留之前的文件的名称 不懂问题请进群交流

基于SIP协议的视频通讯

1.sip协议及其发展 sip(session initiation protocal)称为会话发起协议,是由ietf(internet engineering task force)组织于1999年提出的一个在基于ip网络中,特别是在internet这样一种结构的网络环境中&…

hive sql 怎么实现循环_Hive存储过程实现-hpsql

1. 什么是hpsql目前版本的hive中没有提供类似存储过程的功能,使用Hive做数据开发时候,一般是将一段一段的HQL语句封装在Shell或者其他脚本中,然后以命令行的方式调用,完成一个业务或者一张报表的统计分析。好消息是,现…

解决若干WTL与VS2010的兼容问题(如error MSB6006: “cmd.exe”)

解决[error MSB6006: “cmd.exe” 已退出,代码为 9009。]问题: The AppWizard for VS2010 above has two small glitches (however they might deter people from using WTL with VS2010). These are very easy to fix: 1) [Output Directory] and [Intermediate Di…

arcgis中制作复杂符号

简介 在arcgis制图中常会遇到复杂的制图符号,如下 通过平常的代码显示并不会显示原图这样的效果,接下来我们开始解决改问题 主要思想: 通过字体文件将其显示 所以的软件: arcgis和FontCreator FontCreator软件下载链接

vb 通过php连接mysql数据库连接_PHP连接MySQL数据库的几种方法

1.最简单的方式-mysql(面向过程)$con mysql_connect("localhost","root","password");$select_db mysql_select_db(test);if (!$select_db) {die("could not connect to the db:\n" . mysql_error());}//查询代码$sql "select…

处理硬件设备访问权限问题

在硬件抽象层模块中,我们是调用open函数来打开对应的设备文件的。例如,在2.3.2小节中开发的硬件抽象层模块freg中,函数freg_device_open调用open函数来打开设备文件/dev/freg。 60 if((dev->fd open(DEVICE_NAME, O_RDWR)) -1) { 61 …

根据rtk参数在arcgis中进行可视化

RTK原始文件 通过原始文件发现,arcgis中并没有中央经线是113的CGS2000投影坐标,所以此处需要进行自定义投影转换 不懂问题请进群交流

django图片上传到oss_django 配置阿里云OSS存储media文件的例子

1. 安装django-aliyun-oss2-storage包linux上用 pip install django-aliyun-oss2-storage 无报错,顺利安装windows上报错:(python3_sbs) F:\projects\virtualenv\python3_sbs\Scripts>pip install django-aliyun-oss2-storageCollecting django-aliyun-oss2-stor…

解决mapgis转位置范围偏差过大的问题(比例尺)

问题描述: 在mapgis投影坐标转地理坐标,结果发现地理坐标错误 这样的地理坐标很明显是错误的,发现经度位置些许有些偏差,纬度有大幅度偏差 问题主要出现在在调整投影参数的比例尺分母不正确 解决: 找一个相似研究范围的mapgis文件或者shp文件 方法1(mapgis文件): …

有意思的小学数学竞赛题-2

刚刚在matrix67上看到一篇很有意思的帖子,原文http://www.matrix67.com/blog/archives/4485 我老早就写过一个经典的小学几何题。如果你还没看过这个问题,你一定要去看看。一个小学奥数老师曾 经告诉我,当年带领学生参加这次竞赛时&#xff0…

c语言递归例题分数_C语言递归练习(附答案)

dic递归基础练习题:1.求123……n的值//a(a1)…bint sum(int a,int b){if(ba) return a;return asum(a1,b);}2.求1*2*3*……*n的值a*(a1)*(a2)…*bcheng(int begin,int end){if(beginend) return begin;return begin * cheng(begin1,end);}5.小猴子第一天摘下若干桃子…

MYSQL安装时解决要输入current root password的方法

在装MYSQL的时候发现要输入current root password (你的系统曾经装过MYSQL在重装就会要求输入原来设定的密码,如果是第一次安装就不会出现) 终归结出以下解决方法: 1.清除MYSQL的安装目录,默认是C:\Program Files 2.清除MYSQL数据存放目录&#xff0…

利用python处理中国地面气候资料日值数据集(V3.0)

原始文件 数据链接 00年到18年气象数据,但是未进行处理-数据集文档类资源-CSDN下载00年到18年气象数据,但是未进行处理,如果需要处理好的数据(execl和shp),请查看本博主其他更多下载资源、学习资料请访问C…

window.open使用中遇到的问题

前端开发中经常要用到 window.open 弹出一个新窗口来进行交互,但是在使用过程中却会碰到各种各样的问题,下面是我在平时开发过程中碰到的一些问题。 对于winodw.open的使用可以先看下这个文章 http://www.w3help.org/zh-cn/causes/BX1053 一.浏览器拦截…

VC的MySQL编程

一、在你的程序中使用数据库是不错的注意。如果已经有可用的MySQL服务器,在VC中可以按照如下方法实现与数据库的连接。 1、找来MySQL(Win32)安装目录下的include文件夹,将其添加到VC头文件目录列表中; (VC6 -> Options -> D…