使用PIL查找像素的最大和最小RGB值

4
我有一个使用Pillow库和Python 3进行图像去饱和度的基本算法: - 找到像素RGB值的最大值 - 找到像素RGB值的最小值 - 计算平均值:(max + min) / 2
如何找到每个像素的最小和最大红色、绿色和蓝色值?我完全被搞糊涂了!我尝试了一个for循环中的这段代码。
 red = image.getextrema()
 green = image.getextrema()
 blue = image.getextrema()

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

但是返回的错误信息为:

"TypeError: 不支持使用 / 运算符的类型:'tuple' 和 'int'"

当我删除 int() 函数时,出现了相同的错误信息。

不确定我是否完全走错了路或者只是稍微偏离了轨迹。对于 pillow 库来说,我是一个完全的新手,只是想尝试不同的效果。


red green blue 是元组,表示 red = (min_red,max_red),你需要计算每种颜色的平均值:average_red = (red[0]+red[1])/2 - JMat
1个回答

7

img.getextrema() 返回一个元组,包含了最小值和最大值。要获取平均值,需要执行以下操作:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接