Как я могу преобразовать информацию цвета пикселя изображения в числа и сохранить это в CSV?

Как извлечь информацию о цвете пикселя на изображении в числа и сохранить их в файле CSV? Все эти числа должны идти в 1 строку и несколько столбцов. Если изображение имеет размер 50*50, тогда должна быть только 1 строка и 2500 столбцов, содержащих информацию о цвете пикселя. Как я могу добиться этого в Python? Пожалуйста посоветуй.

Я нашел код, который был,

pixels = list(im.getdata())
width, height = im.size
pixels = [pixels[i * width:(i + 1) * width] for i in xrange(height)]

Но мне нужен этот список в одной строке и нескольких столбцах, так как мой SVM ожидает его в этом формате для обучения изображений.

Вывод должен выглядеть так, как показано ниже, так как это серое изображение, 2 3 253...

где 2 - цвет 1-го пикселя, 3 - цвет 2-го пикселя, 253 - цвет 3-го и т. д. 2 будет в 1-й ячейке 1-й строки, 3 - во 2-й ячейке и 253 - в 3-й ячейке и т. д., Но все пиксели изображения будут в этом ряду. Таким образом, если изображение 50*50, то будет 2500 столбцов / ячеек, содержащих значения пикселей, как указано выше.

1 ответ

Решение

В основном вы хотите разматывать массив (список списков). Вы можете сделать это с пониманием двойного списка:

pixels = [i for row in pixels for i in row]

Если вы хотите записать его в файл с пробелами между значениями, вы можете сделать это

with open('output.csv', 'w') as outfile:
   outfile.write(' '.join([str(i) for i in pixels])
Другие вопросы по тегам