Как я могу преобразовать информацию цвета пикселя изображения в числа и сохранить это в 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])