reclosedev
Just_xD
Да и вообще оптимизировать этот процесс или есть вообще другие способы решения задачи
Да, getpixel во вложенном цикле - очень неэффективен. Мой ответ в коде с коментариями
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import Image
img = Image.open('test.png')
pixels = img.getdata()
# print list(pixels)
# Выдаст плоский список пикселей RGBA
# [(220, 77, 0, 24), (219, 77, 0, 201), (217, 76, 0, 225), ...]
# если не нужен Alpha канал можно сконвертировать в RGB
rgbimg = img.convert('RGB')
# если зачем-то нужен список списков, можно сделать так:
w, h = img.size
print w, h
pixels = list(rgbimg.getdata())
matrix = [pixels[i:i + w] for i in xrange(0, w * h, w)]
# также есть метод Image.load(), который начиная с версии 1.1.6 возвращает
# объект с помощью которого можно читать и писать пиксели
rwpixels = rgbimg.load()
print rwpixels[0, 0]
# и писать
# rwpixels[0, 0] = (123, 123, 123)
# для проверки
for x in xrange(w):
for y in xrange(h):
assert matrix[y][x] == rwpixels[x, y]
В документации PIL.Image есть все эти функции.
Спасибо огромное! Я побывал читать документацию, даже при неплохом уровне тех. английского, скудных примеров не хватает, думаю все придет с опытом

от списка списков пожалуй откажусь ибо как я понял не оч эффетивно для обработки, теперь возник новый вопрос, как оптимальней всего обрабатывать полученный список (производить математические операции с числами) и есть ли возможность получить стандартными или доп средствами конвертацию RGB => Lab (формулы знаю, функцию написал, но может есть более эффективные методы)
благодарствую еще раз за помощь)