我已经将我的图像转换成csv文件,它就像一个矩阵,但我希望它是一行。 如何将数据集中的所有图像转换为csv文件(每个图像都转换为一行)。
这是我用过的代码:
from PIL import Image
import numpy as np
import os, os.path, time
format='.jpg'
myDir = "Lotus1"
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
fileList = createFileList(myDir)
fileFormat='.jpg'
for fileFormat in fileList:
format = '.jpg'
# get original image parameters...
width, height = fileList.size
format = fileList.format
mode = fileList.mode
# Make image Greyscale
img_grey = fileList.convert('L')
# Save Greyscale values
value = np.asarray(fileList.getdata(),dtype=np.float64).reshape((fileList.size[1],fileList.size[0]))
np.savetxt("img_pixels.csv", value, delimiter=',')
如何将图像转换为2D numpy数组,然后将其作为txt文件写入,扩展名为.csv,分隔符为,?
也许你可以使用如下代码:
从你的问题来看,我认为你想知道
numpy.flatten()
。你想添加就在您的np.savetxt调用之前。它会将数组展平到只有一个维度,然后应该作为一行打印出来。
你的问题的其余部分是不清楚的一点,它意味着你有一个目录充满了jpeg图像,你想要一种方法来阅读所有这些图像。因此,首先,获取一个文件列表:
用
for fileName in fileList:
包围代码编辑以添加完整示例 注意,我使用了csv writer并将float64更改为int(这应该是正常的,因为像素数据是0-255
相关问题 更多 >
编程相关推荐