我正在寻找一种算法来产生图片的日晒效果。有人有链接或算法吗?我也对其他过滤器感兴趣,例如棕褐色或卡通。对于棕褐色,我在这里找到了一些代码。在网上我发现关于这些过滤器的实现的信息不多。
问候
日晒意味着响应曲线不是单调的(“输出”不是简单地增加亮度,而是开始变亮,变暗,然后随着“输入”变亮而再次增加)。实现它的最简单方法(对于一些简单的值)是作为转换像素值的更一般过程的特例。
这是主例程的一些python-ish伪代码:
def transform(image, f):
for pixel in image:
pixel = f(pixel)
如果我们选择像素为 0 和 1 之间的值(标准化您拥有的任何值,并且如果您有颜色对待 R、G 和 B 相同),那么您可以通过使用修改 gamma(更改对比度)
transform(image, f(x): x^gamma)
对于日晒,您需要一个减少然后再次增加的功能。所以像 1-4x+4x^2:
transform(image, f(x): 1-4x+4x^2)
如果这有点不透明,这里有一些数字可以让事情更清楚:
然后您可以通过向曲线添加一些用户可以更改的参数(例如 a + bx + cx^2)来进一步了解它。
(实际上,它可以更通用 - 它可以有多个峰值或在亮点处变黑 - 例如,有一个带有黑色太阳的 ansel adams 图像。想法是一样的,只需使用更高阶多项式,或更改符号上面的参数中-a -ve c 将使明亮的区域变暗。您可以使用样条曲线而不是多项式。基本上,它是从输入到输出的映射,“上下”,其中有很大的灵活性.. .)。