如何调整图像的对比度和亮度以匹配GIMP的Colours > Brightness-Contrast对话框?

亮度为-110,对比度为127是我想要达到的效果。
我在this answer中找到了这个函数
def change_contrast(img, level):
factor = (259 * (level + 255)) / (255 * (259 - level))
def contrast(c):
value = 128 + factor * (c - 128)
return max(0, min(255, value))
return img.point(contrast)此函数使用我想要的值再现对比度,但我找不到与亮度等效的值。
我知道ImageEnhance模块存在,但它有一个无界浮点作为参数,如何将我在gimp中使用的值转换为这种格式?或者有没有其他的解决方案,我可以把这些值插入其中。ImageEnhance文档没有解释这个参数是如何工作的。
from PIL import Image, ImageEnhance
img = Image.open(path)
enhancer = ImageEnhance.Brightness(img)
img = enhancer.enhance(0.2)
enhancer = ImageEnhance.Contrast(img)
img = enhancer.enhance(2.0)发布于 2019-06-24 21:06:18
文档解释说:
这个类可以用来控制图像的亮度。如果增强因子为0.0,则会生成黑色图像。因子1.0表示原始图像。
要精确匹配GIMP中的行为,您可以将0.0到1.0的范围映射到GIMP范围,例如,使用代码找到的here
def maprange( a, b, s):
(a1, a2), (b1, b2) = a, b
return b1 + ((s - a1) * (b2 - b1) / (a2 - a1))或者一个很好的解决方案,它使用SciPy插值函数找到here
from scipy.interpolate import interp1d
m = interp1d([gimp_lower, gimp_upper],[0.0, 1.0])
print(m(50))https://stackoverflow.com/questions/56735308
复制相似问题