我正在使用来自http://biometrics.nist.gov/cs_links/EMNIST/gzip.zip的emnist-letters-train-images-idx3-ubyte.gz和emnist-letters-train-labels-idx1-ubyte.gz 我写了这个小脚本来看图像
import os
import struct
import numpy as np
import scipy.misc
np.set_printoptions(threshold='nan')
path = './'
fname_img = os.path.join(path, 'emnist-letters-train-images-idx3-ubyte')
fname_lbl = os.path.join(path, 'emnist-letters-train-labels-idx1-ubyte')
with open(fname_lbl, 'rb') as flbl:
magic, num = struct.unpack(">II", flbl.read(8))
lbl = np.fromfile(flbl, dtype=np.int8)
with open(fname_img, 'rb') as fimg:
magic, num, rows, cols = struct.unpack(">IIII", fimg.read(16))
img = np.fromfile(fimg, dtype=np.uint8).reshape(len(lbl), rows, cols)
print 'image',img.shape
print 'label',lbl.shape
labels, indices = np.unique(lbl,return_index=True)
print 'unique labels',labels
print 'unique indices',indices
for i in indices:
image = img[i]
for y in image:
row = ""
for x in y:
row += '{0: <4}'.format(x)
print row
print 'label',lbl[i],'\n'
newfilename = str(lbl[i]) + '.jpg'
scipy.misc.imsave(newfilename, image)
这是输出图像 我的问题是 - 我和我是不可分辨的,r是不可识别的,许多字母都是倒置的。那是为什么?
感谢。
答案 0 :(得分:2)
水平翻转图像,然后逆时针旋转90度。
答案 1 :(得分:2)
这里的问题可能是您读取数据集数组的方式。如果您对要读取的数组进行转置(例如,对于numpy数组,your_array.T
),则您的EMNIST字符应处于正确的方向。
答案 2 :(得分:0)
答案 3 :(得分:0)
尽管Python 2只是注释掉了Print ...这是验证EMNIST平衡和MNIST加载的快速方法,但它在Ubuntu 16.04 / Anaconda 3.6中仍然有效
答案 4 :(得分:0)
用于在pytorch中转换eminst的代码段(只是为了查看必要的转换)
el.last