Разница между обычным методом VS-оператора в типе данных Python как список [duplicate]

Вы можете получить доступ к значению оттенка серого для каждого отдельного пикселя, обратившись к значениям r, g или b, которые будут одинаковыми для изображения с оттенком серого.

Ie

img = Image.open('eggs.png').convert('1')
rawData = img.load()
data = []
for y in range(24):
    for x in range(24):
        data.append(rawData[x,y][0])

Это не решает проблему скорости доступа.

Я больше знаком с scikit-image, чем с подушкой. Мне кажется, что если все, что вам нужно, перечисляет значения оттенков серого, вы можете использовать scikit-изображение, которое хранит изображения в виде массивов numpy и использует img_as_ubyte для представления изображения в виде массива uint, содержащего значения от 0 до 255.

Изображения NumPy Arrays обеспечивают хорошую отправную точку, чтобы увидеть, как выглядит код.

0
задан Oleg Bogdanov 4 January 2017 в 20:24
поделиться

1 ответ

Python обходит __getattr__, __getattribute__ и экземпляр dict при поиске «специальных» методов для реализации языковой механики. (По большей части специальные методы - это те, у которых есть два символа подчеркивания с каждой стороны имени.) Если вы ожидали, что i[0] вызовет i.__getitem__(0), что в свою очередь вызовет i.__getattr__('__getitem__')(0), вот почему этого не произошло .

3
ответ дан user2357112 20 August 2018 в 09:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: