tensorflow处理自己的图像数据(不使用队列)
2017-12-19 17:42
405 查看
我们的原数据:某路径下的图片数据(比如*.jpg)
所需目标数据:一个包含batch_size张图的tensor,大小为[batch_size, image_height, image_width, channel],tensor的dtype为tf.float32。
我的图片比较少,随便选了9张
要是图片很多的话,直接用切片方法就ok了
话不多说,直接上程序:
所需目标数据:一个包含batch_size张图的tensor,大小为[batch_size, image_height, image_width, channel],tensor的dtype为tf.float32。
我的图片比较少,随便选了9张
要是图片很多的话,直接用切片方法就ok了
话不多说,直接上程序:
import glob import scipy.misc import numpy as np import 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转化为array batch_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>] '''
相关文章推荐
- 在ROS 使用摄像头 WebCam 完成图像处理(1) -- 获取图像数据
- 使用OpenCV和MFC做图像处理(自己的毕设论文,现公布出来)
- caffe学习笔记3:使用caffe对自己的图像数据进行训练和测试
- 深度学习文章5:使用caffe对自己的图像数据进行训练并测试
- 使用阻塞式队列处理大数据
- 使用caffe训练自己的图像数据
- tensorflow 图像数据处理(二)
- 在TensorFlow中使用深度学习GANs处理图像
- 生成tensorflow输入输出的图像格式——使用pipeline通过队列的方法
- 使用Tensorflow训练自己的分割数据
- Kreas 训练自己的图像数据处理回归问题
- 使用GDI+位图数据扫描线处理图像的小技巧
- TensorFlow图像数据处理
- 【caffe】使用自己的图像数据训练lenet并用opencv进行预测
- Tensorflow图像预处理,Numpy读取数据踩坑
- tensorflow 图像数据处理
- 使用阻塞式队列处理大数据
- 使用tensorflow训练自己的数据
- Caffe学习——使用自己的数据(非图像)训练网络
- 基于MXNet使用自己的图像数据集训练网络--准备数据与撰写预处理脚本