TensorFlow 数据的生成与读取

在做TensorFlow案例时好多图片数据集都是可以直接在库中调用的,比如Mnist,CIFAR-10等等。但是在跑自己项目的时候如何去读取自己的数据集呢?这里有两种方法制作数据集。1.CSV文件的读取
2.TFRecords文件的读取。

1.CSV文件的创建与读取

新建名为jpg的文件夹,其中有若干图片是需要对其读取地址和标签的对象。path作为文件夹的路径被设定,之后的filename是读取文件路径。通过调用文件夹内容的递归查询,重新以需要的格式拼接字符串并重新写入。csv文件每一行被逗号分成两部分,前一部分是图片的地址,后一部分是设定的标签名。
在这里插入图片描述

import os
path = r'C:\Users\Qiuyi\...\datasets\jpg_splitCodes'
filenames=os.listdir(path)
strText = ""

with open("train_list.csv", "w") as fid:
    for a in range(len(filenames)):
        strText = path+os.sep+'code' + filenames[a]  + "," + filenames[a].split('.')[0]  + "\n"
        fid.write(strText)
fid.close()

在这里插入图片描述
读取数据时需要2个数组分别存放读取的图片地址和标签,对于CSV文件调用readlines函数即可。

tf.read_line(image_path):读取图片地址的函数(tensorflow中地址信息也需要用函数读取)

tf.image.decode_jpeg:对读取进来的图片解码成JPG格式,并在此设定了图像的通道。channels=1表示读取的图像为灰度。

tf.image.convert_image_dtype:对图像进行转化,将图像矩阵转化成tensorflow需要的张量格式。

import tensorflow as tf
import cv2

image_add_list = []
image_label_list = []
with open("train_list.csv") as fid:
    for image in fid.readlines():
        image_add_list.append(image.strip().split(",")[0])
        image_label_list.append(image.strip().split(",")[1])


def get_image(image_path):
    return tf.image.convert_image_dtype(
        tf.image.decode_jpeg(
            tf.read_file(image_path), channels=1),
        dtype=tf.uint8)

img = tf.image.convert_image_dtype(tf.image.decode_jpeg(tf.read_file('3.jpeg'), channels=1),dtype=tf.uint8)

with tf.Session() as sess:
    cv2Img = sess.run(img)
    img2 = cv2.resize(cv2Img, (200,200))
    cv2.imshow('image', img2)
    cv2.waitKey()

在这里插入图片描述

TensorFlow下如何将图片制作成数据集

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值