创建图像数据的 pickeled 数据文件

Creating a pickeled data file of image data

我已经查看了本网站上关于创建我的图像数据的 pickled 数据文件的两个问题(类似于 mnist.pkl.gz)。尽管我知道酸洗不是必需的,但我还是想知道为什么我的数据在输入以下代码后没有被酸洗以执行相同的操作。

Class

0

1

2

0

0

1

.

。等等。

这里的问题是只有 csv 文件(图像标签)被 pickle 而不是图像数据。

这些图像与下面的代码位于同一目录中。

from PIL import Image
from numpy import genfromtxt
import gzip, cPickle
import pickle
from glob import glob
import numpy as np
import pandas as pd

def dir_to_dataset(glob_files, loc_train_labels=""):
    print("Gonna process:\n\t %s"%glob_files)
    dataset = []
    for file_count, file_name in enumerate( sorted(glob(glob_files),key=len) ):
        print file_name
        print 'Are we in the loop ?'
        image = Image.open(file_name)
        img = Image.open(file_name).convert('LA') #tograyscale
        pixels = [f[0] for f in list(img.getdata())]
        dataset.append(pixels)
        if file_count % 10== 0:
            print("\t %s files processed"%file_count)
    # outfile = glob_files+"out"
    # np.save(outfile, dataset)
    if len(loc_train_labels) > 0:
        df = pd.read_csv(loc_train_labels)
        return np.array(dataset), np.array(df["Class"])
    else:
        return np.array(dataset)




Dataa, y = dir_to_dataset("image\*.bmp","trainLabels.csv")
# Data and labels are read 

train_set_x = Dataa[:30]
val_set_x = Dataa[31:40]
test_set_x = Dataa[41:50]
train_set_y = y[:30]
val_set_y = y[31:40]
test_set_y = y[41:50]
# Divided dataset into 3 parts. I had 6281 images.

train_set = train_set_x, train_set_y
print 'Type of train_set_x',type(train_set_x)
print train_set_x
val_set = val_set_x, val_set_y
test_set = test_set_x, val_set_y

dataset = [train_set, val_set, test_set]

f = gzip.open('traffic_file.pkl.gz','wb')
pickle.dump(dataset, f, protocol=2)
f.close()

将正则表达式更改为 *.bmp 使其工作。