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

Posted

技术标签:

【中文标题】使用 PIL 查找像素的最大和最小 RGB 值【英文标题】:Find max and min RGB values of a pixel using PIL 【发布时间】:2016-10-04 08:46:11 【问题描述】:

我有一个使用枕头库和 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() 函数时出现了同样的错误消息。

不知道我是完全找错了树,还是只是稍微偏离了路线。完全新手使用枕头库,只是想尝试不同的效果。

【问题讨论】:

red green blue 是元组,这意味着 red = (min_red,max_red) 你必须计算每种颜色的平均值:average_red = (red[0]+red[1])/2 【参考方案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

【讨论】:

以上是关于使用 PIL 查找像素的最大和最小 RGB 值的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python / PIL 检测 HSV 颜色空间中的阈值(来自 RGB)

2D 中的滑动窗口最小值/最大值

彩色图像转为灰度图像

如何使用 PIL 确定具有共享值的像素区域

Javascript:使用 reduce() 查找最小值和最大值?

多个条件查找最小和最大日期值