这是kaggle上的一个英文大写字母手写数据集:A-Z Handwritten Alphabets
- 只包含大写字母,图片尺寸为 28 × 28 28\times28 28×28 ,每个字母都放置在中心 20 × 20 20\times20 20×20 的区域。
- 以灰度图的形式存储。
- csv 文件一行的第一列为类别,后续 28 × 28 = 784 28\times28=784 28×28=784 列为像素值。
下面的代码展示将 csv 文件转换成图片并保存在结构化文件夹里:
import os
import numpy as np
import pandas as pd
import cv2
dataset_dir = f'.../archive/A_Z Handwritten Data'
def csv2img(dataset):
for row in range(len(dataset)):
line = dataset.iloc[row]
save_dir = os.path.join(dataset_dir, chr(ord('A') + line[0]))
os.makedirs(save_dir, exist_ok=True)
img = line[1:].values
img_np = 255 - np.array(img.reshape((28, 28)), dtype=np.uint8)
cv2.imwrite(os.path.join(save_dir, f'{i}.png'), img_np)
if __name__ == '__main__':
data = pd.read_csv(os.path.join(dataset_dir, 'A_Z Handwritten Data.csv'))
csv2img(data)
fertig!