腌制图像对象?

时间:2014-08-03 12:26:45

标签: python pickle

我是一个有泡菜的新手,我有一堆(大约100,000张)需要腌制的图片。

它们首先作为图像对象加载,并按如下方式转换为数据:

image = {
    'pixels': im.tostring(),
    'size': im.size,
    'mode': im.mode,
}

现在我如何将它们腌制成一个pkl文件?

2 个答案:

答案 0 :(得分:5)

你可以这样做:

file = open('data.pkl', 'wb')

# Pickle dictionary using protocol 0.
pickle.dump(image, file)
file.close()

要阅读字典,您可以这样做:

file = open('data.pkl', 'rb')

image = pickle.load(pkl_file)
print image
file.close()

也可以将数据转储两次:

import pickle

# Write to file.
file = open("data.pkl", "wb")
pickle.dump(image1, file)
pickle.dump(image2, file)
file.close()

# Read from file.
file = open("data.pkl", "rb")
image1 = pickle.load(file)
image2 = pickle.load(file)
file.close()

答案 1 :(得分:2)

只需拨打pickle.dump,就像对待其他任何事情一样。你有一个dict,其值都是简单类型(字符串,几个数字的元组等)。它来自图像的事实是无关紧要的。

如果你有很多,可能是他们存储在一个列表或其他结构中,你可以挑选一个可挑选的对象列表。

所以:

with open('data.pkl', 'wb') as f:
    pickle.dump(images, f)