我正在做一个ML项目来识别不同用户的silouhettes。我有一个1900图像的原始图像数据集。我想将它们转换为CSV数据集,标签是用户的名字。我目前被转换图像到numpy数组的部分卡住了。代码在这里
from PIL import Image
import numpy as np
import sys
import os
import csv
# default format can be changed as needed
def createFileList(myDir, format='.jpg'):
fileList = []
print(myDir)
for root, dirs, files in os.walk(myDir, topdown=False):
for name in files:
if name.endswith(format):
fullName = os.path.join(root, name)
fileList.append(fullName)
return fileList
rahul = []
# load the original image
myFileList = createFileList(r'C:\Users\Mr.X\PycharmProjects\Gait_Project\data\rahul')
for file in myFileList:
print(file)
img_file = Image.open(file)
# img_file.show()
# get original image parameters...
width, height = img_file.size
format = img_file.format
mode = img_file.mode
# Make image Greyscale
img_grey = img_file.convert('L')
img_res = img_grey.resize((480, 272))
# img_grey.save('result.png')
# img_grey.show()
# Save Greyscale values
value = np.asarray(img_res.getdata(), dtype=np.int).reshape((img_res.size[1], img_res.size[0]))
value = value.flatten()
print(value)
npvalue = np.array(value)
rahul.append(npvalue)
#with open("rahul.csv", 'a') as f:
# writer = csv.writer(f)
# writer.writerow(value)
final = np.array(rahul)
np.save("rahul.npy", final)
字符串
我的目标是使一个数据集与1900图像和4标签,目前,同时使numpy数组图像的每个像素都在一个单独的列中输入.如果1900行和200k列,需要成为1900行和2列.任何建议或帮助表示赞赏
1条答案
按热度按时间zte4gxcn1#
您可以轻松地打开图像并使用OpenCV将其转换为NumPy。
字符串