Я делаю некоторый анализ изображений, и у меня есть генератор, который дает мне все пиксели изображения:Частотный анализ значений, полученных с помощью генератора
def pixels_g(img):
w, h = img.shape
for y in range(0, h):
for x in range(0, w):
yield img[y][x]
Это выход, если преобразуется в список будет что-то вроде
[0, 1, 2, 5, 240, 5, ... ]
Теперь я хотел бы получить «таблицу частот» для него:
{
0: 0,
1: 5,
2: 10,
3: 0,
4: 0,
#snip
255: 7
}
Я нашел нас eful options в this question, но все они работают со списком, и я не думаю, что создание списка из моего генератора - хорошая идея - оно может содержать миллионов элементов.
Я поэтому ищу способ сделать это, сохраняя при этом преимущества генератора. Я обработаю много изображений и не хочу слишком сильно загружать ресурсы.
в defaultdict и сосчитать, как вы идете? –
collections.counter снова поражает. У этого вопроса определенно есть как минимум дюжина дубликатов. –
@OlehPrypin будет коллекций.Конвертер использует его как генератор? – MightyPork