tensorflow处理自己的图像数据(不使用队列)

来源:互联网 发布:nature数据库使用 编辑:程序博客网 时间:2024/06/05 11:52

我们的原数据:某路径下的图片数据(比如*.jpg)
所需目标数据:一个包含batch_size张图的tensor,大小为[batch_size, image_height, image_width, channel],tensor的dtype为tf.float32。

我的图片比较少,随便选了9张
要是图片很多的话,直接用切片方法就ok了

话不多说,直接上程序:

import globimport scipy.miscimport numpy as npimport tensorflow as tf#获取指定目录下所有图片,返回一个列表data = glob.glob(r'F:\picture_data\*.jpg')print(data)'''输出为:['F:\\picture_data\\brush1.jpg', 'F:\\picture_data\\girl_1.jpg', 'F:\\picture_data\\Joseph_Mallord_William_Turner_-_Raby_Castle,_the_Seat_of_the_Earl_of_Darlington_-_Walters_3741.jpg', 'F:\\picture_data\\Joseph_Mallord_William_Turner_Self_Portrait_1799.jpg', 'F:\\picture_data\\MDBCaEJVd3JUK0RTTXJlM2dZSXJkMVR2bFBNY05hTzRZN0xqbFBNYm9Yb1JxM3RRVEt1T2lnPT0.jpg', 'F:\\picture_data\\Meisje_met_de_parel.jpg', 'F:\\picture_data\\Slave-ship.jpg', 'F:\\picture_data\\VanGogh-starry_night.jpg', 'F:\\picture_data\\Van_Gogh_Vase_with_Fifteen_Sunflowers.jpg']'''#我只有9张图做示范,图片数据量大时,采用切片方法即可#data_batch = data[idx*batch_size: (idx+1)*batch_size]#get_image函数的作用是:将每张图片转化为指定大小的tensor#path:路径#output_height, output_width:指定目标图片大小#scipy.misc.imread函数:直接读取目标路径下的图片,其返回值为一个3维的像素值#tf.image.resize_image_with_crop_or_pad作用:输入图片像素值及指定图像大小,输出指定图像#以图像的几何中心为基础进行crop或pad(pad就是补0)def get_image(path, output_height, output_width):    image = scipy.misc.imread(path).astype(np.float32)    return tf.image.resize_image_with_crop_or_pad(image, output_height, output_width)batch = [get_image(batchs, 500, 500) for batchs in data]print(batch)'''输出为:[<tf.Tensor 'control_dependency_3:0' shape=(500, 500, 3) dtype=float32>, <tf.Tensor 'control_dependency_7:0' shape=(500, 500, 3) dtype=float32>, <tf.Tensor 'control_dependency_11:0' shape=(500, 500, 3) dtype=float32>, <tf.Tensor 'control_dependency_15:0' shape=(500, 500, 3) dtype=float32>, <tf.Tensor 'control_dependency_19:0' shape=(500, 500, 3) dtype=float32>, <tf.Tensor 'control_dependency_23:0' shape=(500, 500, 3) dtype=float32>, <tf.Tensor 'control_dependency_27:0' shape=(500, 500, 3) dtype=float32>, <tf.Tensor 'control_dependency_31:0' shape=(500, 500, 3) dtype=float32>, <tf.Tensor 'control_dependency_35:0' shape=(500, 500, 3) dtype=float32>]'''#将list转化为arraybatch_images = np.array(batch)print(batch_images)'''输出为:[<tf.Tensor 'control_dependency_3:0' shape=(500, 500, 3) dtype=float32> <tf.Tensor 'control_dependency_7:0' shape=(500, 500, 3) dtype=float32> <tf.Tensor 'control_dependency_11:0' shape=(500, 500, 3) dtype=float32> <tf.Tensor 'control_dependency_15:0' shape=(500, 500, 3) dtype=float32> <tf.Tensor 'control_dependency_19:0' shape=(500, 500, 3) dtype=float32> <tf.Tensor 'control_dependency_23:0' shape=(500, 500, 3) dtype=float32> <tf.Tensor 'control_dependency_27:0' shape=(500, 500, 3) dtype=float32> <tf.Tensor 'control_dependency_31:0' shape=(500, 500, 3) dtype=float32> <tf.Tensor 'control_dependency_35:0' shape=(500, 500, 3) dtype=float32>]'''
阅读全文
0 0
原创粉丝点击