Photoshop详细解析自定滤镜的原理技巧

自定滤镜,相信好多人都不知道它是干什么用的,也很难找到相关资料,下面是Adobe的官方解说:自定 (Photoshop)使您可以设计自己的滤镜效果。

使用自定滤镜,根据预定义的数学运算(称为卷积),可以更改图像中每个像素的亮度值。根据周围的像素值为每个像素重新指定一个值,此操作与通道的加、减计算类似,您可以存储创建的自定滤镜,并将它们用于其它 Photoshop 图像。

以前我写过几个教程用到自定滤镜,一些同学要我写一篇自定滤镜的教程,说实在的,我对这个滤镜也是一窍不通,现在把近来在网上学到的用比较简单易懂的方式写出来,大家共同研究、学习。

由于本人知识有限,如有出错,请大家见谅!


自定义公式,高斯模糊和锐化

即我对对比度公式的思考之后,我这几天有仔细攻克高斯,高反差和usm锐化的公式,主要是因为我对网上有关的一个公式【原始=高反差保留+高斯模糊】的思考,因为我用一张图演示之后根本得不到这个公式正确的证明,这样我就茶不思饭不想,睡觉都睡不好了,于是开始研究这几个公式,网上大都能找到这几个公式,但是有些地方还是觉得不太正确,因此我通过验证计算得到这几个公式能够被大多数人接受(初中毕业就行)的公式。
(1)先说说高斯模糊,因为以后的2个公式全用到高斯模糊,因此先说它还是有必要的,说它之前还要说说自定义滤镜

这个图网上都能查到,大体意思就是权重(当前像素所占的比例,就是方格内你要填的数字)*原始色阶值,再求和,就是如同求期望值公式(初中知识,我也是百度之后回忆起来的)例如x为原始像素的色阶值,利用自定义滤镜之后,x变成y=A*A的比重+B*B的比重+C*C的比重+D*D的比重+E*E的比重+F*F的比重+G*G的比重+H*H的比重+X*X的比重(+..如果有其他的,在继续加)如果要是比重的和为100%,下面有一个缩放,16就是你填的数字在除以16,好了这样就能达到100%了。高斯模糊就是基于这样一个自定义滤镜创造的一个滤镜,他的公式是根据高斯公式得来的
g(x,y)=1/(2πr2)*e【-(x2+y2)/2*r2】(别问我这个公式怎么得来的,问高斯去)
【-(x2+y2)/2*r2】是e的指数,e就是自然对数,π就是3.14,这是高斯公式,隐身到高斯模糊中就是
g(x,y)就是求当前像素的权重,r就是高斯半径,x,y就是相对于你要求的像素的相对位置,格的最中间是(0,0)上面就是(0,1),左面就是(-1,0)右面就是(0,1)以此类推。
这样就能求的每一个格的权重,在利用自定义滤镜的公式就能求的当前像素x色戒指在经过高斯模糊之后所得到的y值
高斯模糊就是这么求来的,比较麻烦,没有简单的公式,但是可以化简

上图是高斯半径0.7,求的每一个权重之后相加,才能算出每一个x变化之后的y值,一幅图有好多像素,人要算一幅图肯定要算上几十年,计算机不到0.几秒的时间就算玩了(电脑居然还不用四舍五入),发现上图中的奥秘了吗,他是关于中间值0.3247左右上下对称的,通过(x2+y2)就能看出来

(2)usm锐化,

这个和高斯相反,他是增加对比度的,他的控制因素中也提到了半径(0-250),这证明它和高斯有一定的联系,有可能就是高斯模糊的半径,经过证明之后确实是,数量(1-500)不用说这个肯定是增加的幅度啦,还有个阈值,网上说这个是左右相邻两个像素的色阶差,大于这个色阶差才被选择,我经过验证,觉得这个说法对也不对,色阶差没错,但是不是相邻像素,而是原始色阶和高斯模糊之后的色阶差,这个之后提。

这里我们先设一幅图某个点的原始色阶为m,他高斯之后的得到的像素为n,高斯模糊是向左右两个像素的平均值变化,因此高像素m>n,低像素m<n,经验证之后得出usm分三步操作:
第一部,将图像做高斯半径(即usm半径)的高斯模糊,得到每一个像素m的新色阶值n
第二部,求丨m-n丨值,这个是高斯的作用值用来减小对比度,现在用这个值来增加对比度,新色阶值y=m+丨m-n丨,由于有数量的控制,因此公式为y=m+丨m-n丨*数量
第三部,这里要用到阈值,上面说过,阈值经过我的验证是用来限制丨m-n丨的,只有丨m-n丨>阈值的像素才被usm滤镜选中为作用点,使用第二部提到的公式,否则不作用,还为原始色阶值,但是这个公式里面还有一个补偿值(习惯用这个词),就是阈值,通过第二部得到的公式在减去这个阈值,才是最后得到的变化值,但是为什么有这个补偿值我不知道
最后y=m+丨m-n丨*数量-阈值

和ps对照,一致,公式得证。
(3)高反差保留,这个通过以上两个公式在看图像中调整后的大概,就更加简单了,先对原图进行半径的高斯模糊,得到
丨m-n丨,这里面没有阈值的和数量的调节,那么,就是阈值为0,数量为100%了(先猜得,然后一看就是这么回事),m-n=0的为128,m-n<0的,128-(n-m),m-n>0的,128-(m-n)
最后y=128+(m-n)

三个公式全部得出,可以看出,原始值m=高斯模糊n+高反差128+(m-n)-128,就是得减去这个128,就是这个小小的128让我验证了上面的公式,哈哈,可以吃饭了

让我彻夜未睡好的帖子http://blog.sina.com.cn/s/blog_400908ec0100xyuv.html,其实按照他的步骤中的第三部:高斯10得到n,再反相255-n,线性光,根据懵懂斋老师的公式就是m+2(255-n)-255,在50%,就是m*50%+(m+255-2n)*50=m+128-n,这样和高反差128+(m-n)一致,这个经过我上面的公式还是一致的,但是他怎么推的,原始=高反差保留+高斯模糊,我就不知道了

来自:https://www.missyuan.com/viewthread.php?tid=590013