图像预处理是一个非常简单,通过提高训练数据的多样性,进而对训练模型的召回率,适应性有着非常大的提升作用。

另外在训练时,需要更多的训练次数,比如说我对每张图片进行了一次旋转,那么训练次数就要提高一倍。也就是说训练集多样性增加,同时训练次数也要增加。

代码:

import tensorflow as tf
from scipy import misc
import numpy as np#随机旋转图片
def random_rotate_image(image_file, num):with tf.Graph().as_default():tf.set_random_seed(666)file_contents = tf.read_file(image_file)image = tf.image.decode_image(file_contents, channels=3)image_rotate_en_list = []def random_rotate_image_func(image):#旋转角度范围angle = np.random.uniform(low=-30.0, high=30.0)return misc.imrotate(image, angle, 'bicubic')for i in range(num):image_rotate = tf.py_func(random_rotate_image_func, [image], tf.uint8)image_rotate_en_list.append(tf.image.encode_png(image_rotate))with tf.Session() as sess:sess.run(tf.global_variables_initializer())sess.run(tf.local_variables_initializer())results = sess.run(image_rotate_en_list)for idx,re in enumerate(results):with open('data/'+str(idx)+'.png','wb') as f:f.write(re)#随机左右翻转图片
def random_flip_image(image_file, num):with tf.Graph().as_default():tf.set_random_seed(666)file_contents = tf.read_file(image_file)image = tf.image.decode_image(file_contents, channels=3)image_flip_en_list = []for i in range(num):image_flip = tf.image.random_flip_left_right(image)image_flip_en_list.append(tf.image.encode_png(image_flip))with tf.Session() as sess:sess.run(tf.global_variables_initializer())sess.run(tf.local_variables_initializer())results = sess.run(image_flip_en_list)for idx,re in enumerate(results):with open('data/'+str(idx)+'.png','wb') as f:f.write(re)#随机变化图片亮度
def random_brightness_image(image_file, num):with tf.Graph().as_default():tf.set_random_seed(666)file_contents = tf.read_file(image_file)image = tf.image.decode_image(file_contents, channels=3)image_bright_en_list = []for i in range(num):image_bright = tf.image.random_brightness(image, max_delta=0.3)image_bright_en_list.append(tf.image.encode_png(image_bright))with tf.Session() as sess:sess.run(tf.global_variables_initializer())sess.run(tf.local_variables_initializer())results = sess.run(image_bright_en_list)for idx,re in enumerate(results):with open('data/'+str(idx)+'.png','wb') as f:f.write(re)#随机裁剪图片
def random_crop_image(image_file, num):with tf.Graph().as_default():tf.set_random_seed(666)file_contents = tf.read_file(image_file)image = tf.image.decode_image(file_contents, channels=3)image_crop_en_list = []for i in range(num):#裁剪后图片分辨率保持160x160,3通道image_crop = tf.random_crop(image, [160, 160, 3])image_crop_en_list.append(tf.image.encode_png(image_crop))with tf.Session() as sess:sess.run(tf.global_variables_initializer())sess.run(tf.local_variables_initializer())results = sess.run(image_crop_en_list)for idx,re in enumerate(results):with open('data/'+str(idx)+'.png','wb') as f:f.write(re)if __name__ == '__main__':#处理图片,进行20次随机处理,并将处理后的图片保存到输入图片相同的路径下random_brightness_image('data/test.png', 20)

运行效果:

随机裁剪

随机亮度

随机旋转

随机翻转

更多图像处理操作,请查看tensorflow官方文档http://www.tensorfly.cn/tfdoc/api_docs/python/image.html

tensorflow图片预处理,随机亮度,旋转,剪切,翻转。相关推荐

  1. TensorFlow 图像预处理(二) 图像翻转,图像色彩调整

    https://blog.csdn.net/chaipp0607/article/details/73089910 图像翻转 tf.image.flip_up_down:上下翻转 tf.image.f ...

  2. TensorFlow 图片预处理

    参考: https://www.yueye.org/2018/resize-an-image-in-tensorflow-while-keeping-the-aspect-ratio.html htt ...

  3. php反转图片颜色,PHP 图片处理类(水印、透明度、缩放、相框、锐化、旋转、翻转、剪切、反色)...

    /** * 图片处理函数功能:缩放.剪切.相框.水印.锐化.旋转.翻转.透明度.反色 * 处理并保存历史记录的思路:当有图片有改动时自动生成一张新图片,命名方式可以考虑在原图片的基础上加上步骤,例如: ...

  4. PHP 图片处理类(水印、透明度、缩放、相框、锐化、旋转、翻转、剪切、反色)...

    最新PHP 图片处理类(水印.透明度.缩放.相框.锐化.旋转.翻转.剪切.反色) 以下是三零网为大家整理的最新PHP 图片处理类(水印.透明度.缩放.相框.锐化.旋转.翻转.剪切.反色)的文章,希望大 ...

  5. GD图片处理——缩放、剪切、相框、水印、锐化、旋转、翻转、透明度、反色

    该图片处理函数功能:缩放.剪切.相框.水印.锐化.旋转.翻转.透明度.反色,处理并保存历史记录的思路:当有图片有改动时自动生成一张新图片,命名方式可以考虑在原图片的基础上加上步骤,例如:图片名称+__ ...

  6. tensorflow分类图片预处理

    在处理深度学习图片分类问题时,训练素材的数量是一个很大的问题,除了疯狂的采集图片,通过对图片预处理的方式,可以提高图片数量,降低训练干扰因素,提高识别确认度. 读取图片,转换为实数后方便后边对图片进行 ...

  7. C#图像处理(各种旋转、改变大小、柔化、锐化、雾化、底片、浮雕、黑白、滤镜效果,滤波,图像截取) 对图片的处理 : 亮度调整 抓屏 翻转 随鼠标画矩形

    C#图像处理(各种旋转.改变大小.柔化.锐化.雾化.底片.浮雕.黑白.滤镜效果) C#图像处理(各种旋转.改变大小.柔化.锐化.雾化.底片.浮雕.黑白.滤镜效果,滤波,图像截取) 对图片的处理 : 亮 ...

  8. 【opencv】11.旋转、翻转图片

    opencv旋转图片 C++版本的旋转: cv::Mat img; // 以下二者结合使用就是:顺时针旋转90度 cv::transpose(img, img); //对矩阵做转置后,并非旋转了90度 ...

  9. 图片批量旋转与翻转工具

    图片批量旋转与翻转工具 使用python实现的图片批量旋转与翻转工具,能够多选图片然后统一旋转或翻转. 支持五种操作:1.向左旋转90度 2.向右旋转90度 3.旋转180度 4.左右翻转 5.上下翻 ...

  10. Java 旋转、翻转图片工具类(附代码) | Java工具类

    目录 前言 Maven依赖 代码 总结 前言 本文提供java操作图片生成旋转.翻转后的图片工具类,拿来即用. Maven依赖 <dependency><groupId>com ...

最新文章

  1. 综述 | Google-斯坦福发布深度学习统计力学
  2. 匹兹堡计算机科学公司,2017美国匹兹堡大学计算机科学CS专业硕士录取
  3. Bear and Finding Criminals (模拟)
  4. 网络安全分析和公有云使用的安全性
  5. 前端学习(3325):Mdn说闭包
  6. 77-CCI,Commodity Channel Index,商品通道指标.(2015.7.1)
  7. 如何快速开通微信小程序的流量主功能
  8. 华为鸿蒙操作系统国美通讯,国美通讯(600898)03月14日14:30大单揭秘
  9. 服务器非80端口无法访问网页,使用非80网站访问服务器web提示需要备案呢?
  10. 最佳国外域名注册商推荐,不需要备案【Namesilo【推荐】、Namecheap、Godaddy】
  11. 心绞痛--大柴胡汤合桂枝茯苓丸---胡希恕
  12. .Net中使用数据库(sqlite)的大体流程(简单向)
  13. OkHttp缓存与连接
  14. Chrome安装flash插件的解决方案
  15. Hexo个人博客搭建教程
  16. MapX系列-- 开源Mitab
  17. css+html创建一个大风车
  18. mybatis-plus分页插件配置与使用(springboot)
  19. 深度学习三十问!一位算法工程师经历30+场CV面试后总结的常见问题合集(含答案)...
  20. 2018全球机器学习技术大会7月27-28日就等你来!

热门文章

  1. java 数学公式解析_JAVA 文本表达式解析成数学公式,计算出结果
  2. freetype 2.11.0必须使用VS2012编译
  3. Centos删除virbr0网卡
  4. 分内外网,下载个东西真不方便,一肚子火
  5. 全网首发:C++中通过POST向服务器发送JSON的代码
  6. LINUX脚本中如何判断相等
  7. 上传了一个安卓系统摄像头性能测试代码
  8. C++编译错误解决办法:Class_Label[abi:cxx11]'被多次定义
  9. 电脑显示器尽快触摸化
  10. linux6磁盘绑定,关于Linux 6使用udev绑定共享磁盘的测试