使用pillow实现tensorflow中的一些图像增强函数(crop,contrast,flip,per_image_standardization)
2017-08-14 13:12
330 查看
使用tensorflow自带的tf.random_crop()、tf.image.random_flip_left_right()、以及random_contrast()等函数处理图像数据时,不仅需要使用session,而且处理速度非常慢。使用Pillow库完成这些函数接口,在实际数据处理时就非常快速和方便。
使用时只需导入这个文件即可。
关于使用PIL库做图像增强,这里有一篇博客写的很详细:
http://www.cnblogs.com/txw1958/archive/2012/02/21/python3-PIL.html
#!/usr/bin/env python #-*- coding:utf-8 -*- ############################ #File Name: pic_process_PIL.py #Author: Wang #Mail: @hotmail.com #Created Time:2017-08-14 10:28:14 ############################ from PIL import Image import ImageEnhance import numpy as np from random import randint import random img = Image.open('1.jpg') #print img.format, img.size, img.mode #img.resize((1080,768)) #img.crop((14,14,79,79)).show() #print img.getpixel((1920,1080)) def random_crop(img, width, height): width1 = randint(0, img.size[0] - width ) height1 = randint(0, img.size[1] - height) width2 = width1 + width height2 = height1 + height img = img.crop((width1, height1, width2, height2)) return img def random_flip_left_right(img): prob = randint(0,1) if prob == 1: img = img.transpose(Image.FLIP_LEFT_RIGHT) return img def random_contrast(img, lower = 0.2, upper = 1.8): factor = random.uniform(lower, upper) img = ImageEnhance.Sharpness(img) img = img.enhance(factor) return img def random_brightness(img, lower = 0.6, upper = 1.4): factor = random.uniform(lower, upper) img = ImageEnhance.Brightness(img) img = img.enhance(factor) return img def random_color(img, lower = 0.6, upper = 1.5): factor = random.uniform(lower, upper) img = ImageEnhance.Color(img) img = img.enhance(factor) return img def per_image_standardization(img): '''stat = ImageStat.Stat(img) mean = stat.mean stddev = stat.stddev img = (np.array(img) - stat.mean)/stat.stddev''' if img.mode == 'RGB': channel = 3 num_compare = img.size[0] * img.size[1] * channel img_arr=np.array(img) #img_arr=np.flip(img_arr,2) img_t = (img_arr - np.mean(img_arr))/max(np.std(img_arr), 1/num_compare) return img_t #img = random_crop(img,1000,1000) #img = random_flip_left_right(img) '''img = ImageEnhance.Sharpness(img) img.enhance(5.0).show()''' #img = random_contrast(img, 4,6)
使用时只需导入这个文件即可。
关于使用PIL库做图像增强,这里有一篇博客写的很详细:
http://www.cnblogs.com/txw1958/archive/2012/02/21/python3-PIL.html
相关文章推荐
- tensorflow下的图片标准化函数per_image_standardization
- opencv2函数学习之flip:实现图像翻转
- 哈工大深研院数字图像处理第一次大作业:不调用Matlab函数实现图像增强
- QT 如何实现使用 QPainter 的 drawPixmap() 函数将图片文件绘制到一个 QLabel、QPushButton 或者其他的一些设备上?
- 哈工大深研院数字图像处理第一次大作业:不调用Matlab现有库函数实现图像增强
- 【识别码】使用(ImageMagick+tesseract-ocr)实现图像验证码识别实例
- MATLAB GUI ,2,使用MATLAB的函数来实现MATLAB GUI,part 1,图像、按钮和坐标轴
- opencv图像处理的一些常用函数简单使用
- Tensorflow使用slim工具(vgg16模型)实现图像分类与分割
- 关于.net中获取图像缩略图的函数GetThumbnailImage的一些认识。
- TensorFlow练手项目三:使用VGG19迁移学习实现图像风格迁移
- Tensorflow使用slim工具(vgg16模型)实现图像分类与分割
- 使用(ImageMagick+tesseract-ocr)实现图像验证码识别实例
- 使用局部标准差实现图像的局部对比度增强算法。
- 关于.net中获取图像缩略图的函数GetThumbnailImage的一些认识。
- 使用局部标准差实现图像的局部对比度增强算法。
- 给图像加高斯噪声和椒盐噪声(不使用自带函数)matlab实现
- MATLAB GUI ,2,使用MATLAB的函数来实现MATLAB GUI,part 5,imshow绘图方式以及主辅图像缓存
- Python 之 使用 PIL 库做图像处理(pillow+ImageDraw)
- 使用局部标准差实现图像的局部对比度增强算法