Tensorflow 图像数据预处理,标准化

import numpy as np
import random
import matplotlib.pyplot as plt
from PIL import Image

1.需要导入的包

for n in range(4600):
#    input_data用来保存所有faces图片的路径
    data_path=r'C:\Users\Administrator\Desktop\dataset\faces-resize-gray\{}.jpg'.format(n+1)       
    input_data.append(data_path) 
``
`
2.创建一个数组保存所有图片的路径信息

def faces_batch(input_data):
random.shuffle(input_data)

train_data保存图像数据

train_data=np.empty((BATCH_SIZE,IMAGE_SIZE,IMAGE_SIZE))

随机返回batch个图像的路径

random_path=[]
random_path=random.sample(input_data,BATCH_SIZE)

3.首先random.shuffle就地打乱列表,再随机从列表中返回十个图片的地址,

for i in range(BATCH_SIZE):

读取随即返回的batch个路径对应的picture,并保存到一个第一维为batch大小的数组

    image=Image.open(random_path[i])

图像随机左右翻转

    if random.randint(1,11) >random.randint(1,10):
        image = image.transpose(Image.FLIP_LEFT_RIGHT)
        
    img_ndarray=np.asarray(image,dtype='float64')
4.前面设置为randint(1,11),后面为(1,10)保证了图片被水平翻转的概率为0.5

图像明度,对比度随机调整

    gamma=random.randint(-30,30)
    a=random.uniform(0.85,1.3)

    img_brightness=a*img_ndarray + gamma 
5.gamma值调整亮度
a值调整对比度

图像归一化处理

    mean=np.sum(img_brightness)/4096
    std=np.std(img_ndarray)
    standard_img=(img_brightness-mean)/std
    
    train_data[i]=standard_img

train_data = train_data.astype('float32')  
return train_data

6.np.sum()/(imgsize*imgsize)求出像素均值
np.std求出标准差


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值