使用 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)