我想制作如here
所示的过滤器通过spektre从上面的链接复制图像:
答案 0 :(得分:2)
黑白滤镜
很容易将 RGB 转换为强度i
,然后将 RGB 转换为iii
颜色。最简单的不精确转换是
i=(R+G+B)/3
但更好的方法是使用权重
i=w0*R+w1*G+w2*B
其中w0+w1+w2=1
可以通过谷歌搜索努力找到值{/ p>
其余
某些过滤器似乎超过了指数颜色或加权颜色,如下所示:
r=w0*r; if (r>255) r=255;
g=w1*g; if (g>255) g=255;
b=w2*b; if (b>255) b=255;
在范围w0,w1,w2
中为<0-10>
编写一个包含3个滚动条的应用,并使用上面的公式重新绘制图像。经过一些小实验,您应该找到大多数过滤器的w0,w1,w2
...其余的可以是这样的颜色混合:
r=w00*r+w01*g+w02*b; if (r>255) r=255;
g=w10*r+w11*g+w12*b; if (g>255) g=255;
b=w20*r+w21*g+w22*b; if (b>255) b=255;
或:
i=(r+g+b)/3
r=w0*r+w3*i; if (r>255) r=255;
g=w1*g+w3*i; if (g>255) g=255;
b=w2*b+w3*i; if (b>255) b=255;
顺便说一句,如果你想要最接近的相似性,你可以:
在输入图片中找到测试颜色
喜欢 R 阴影, G 阴影, B 阴影, RG,RB,BG,RGB 阴影0-255
。然后从相同位置的滤波图像中获取颜色,并绘制每个阴影绘制 R,G,B 强度的依赖图。
一个轴是输入图像颜色强度,另一个是 R,G,B 过滤颜色的强度。然后你应该看到直接使用哪个公式,也可以从中计算权重。这就是过度演化对红色
的作用
如果行不是行而是曲线
然后使用某种伽马校正,因此公式使用更高阶的多项式(2,3,4的幂......),大多数2的幂就足够了。在这种情况下,权重也可能是负的!!!
某些过滤器可能会使用不同的颜色空间
例如将 RGB 转换为 HSV 移位色调并转换回 RGB 。这会稍微改变颜色。