Почему больше значений CSV, чем размер изображения? - PullRequest
0 голосов
/ 19 октября 2018

Я создаю csv файл изображений в наборе данных.Каждое изображение имеет размер 40 * 40 пикселей и все в формате .jpg.Сценарий Python выглядит следующим образом:

for file in os.listdir("E:/ML project/10"):
    print(file)
    img_file = Image.open("E:/ML project/wiki/10/"+file)
    value = np.asarray(img_file, dtype='float32')
    value = value.flatten()
    value=value/255
    writer.writerow(value)

Есть несколько изображений, которые имеют более 1600 csv значений.

enter image description here Изображения, подобные этимимея 1600 значений.Они были обрезаны скриптом Python.

enter image description here Изображения, похожие на него, имеют более 1600 значений.Это из-за принудительного сжатия до 40 * 40?

Как мне это исправить?

1 Ответ

0 голосов
/ 19 октября 2018

Ваше второе примерное изображение на самом деле является изображением RGB и поэтому имеет значения 3 * 40 * 40.

Один из способов справиться с этим - преобразовать его в оттенки серого, используя Image.convert ().На самом деле вы можете сделать то же самое со всеми вашими изображениями не в градациях серого:

if img_file.mode != 'L':
    img_file = img_file.convert('L')

(Кстати, я бы изменил имя переменной с img_file на img или что-то в этом роде)

...