Найти максимальное и минимальное значения RGB пиксела с помощью PIL

У меня есть базовый алгоритм для десатурации изображения с помощью библиотеки подушек и Python 3:
— найти максимум значений RGB пикселя
— найти мин значений RGB пикселя
— среднее значение calc: (max + min) / 2

Как найти минимальное и максимальное значения красного, зеленого и синего для каждого пикселя? Я совершенно запуталась! Я пробовал этот код как часть цикла for

 red = image.getextrema()
 green = image.getextrema()
 blue = image.getextrema()

 average = int( (red + green + blue) / 2 )

но возвращается ошибка

«TypeError: неподдерживаемые типы операндов для/: ‘tuple’ и ‘int'»

Та же ошибка msg появилась, когда я удалил функцию int ().

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

1 ответ

  1. img.getextrema() возвращает кортеж (min_value, max_value). Для того, чтобы получить среднее значение, вы должны сделать:

    value = img.getextrema()
    avg = sum(value)/len(value) # OR, sum(value)/2, as len will always be 2