Atitit (Sketch Filter)素描滤镜的实现 图像处理attilax总结
Sch lg java d sketch filter aigo se ,ma sinsho ..byedu 3page ma ...
1.1.素描滤镜的实现方法比较简单,这里我们直接写出算法过程如下:
1,对原图S进行去色命令得到灰度图A;
2,对A进行反色反相得到图像B;求图像的底片
3,对B进行高斯模糊得到图C;对底片进行高斯模糊在步骤3中,可以添加变量edgeIntensity(edgeIntensity>=0),来控制素描的边缘强度;
以上就是素描的算法实现。
4,将C与a进行颜色减淡的图层混合算法:c在上面,a在下面,c的叠加模式选择颜色减淡
1.2.颜色减淡COLOR_DODGE的公式如下
P(x,y) = Pb(x,y) + (Pb(x,y)* Pc(x,y)) / (256 - Pc(x,y));
C =MIN( A +(A×B)/(255-B),255)
(255-B)就是得到b的反相
既然知道了算法,现在开始代码:
A为原图gray图,b为上层图片,即是灰度图反相底片高斯模糊后的图片
C的最大值为255,如果超出要截取到255,否则会脸部变黑色。。如果b是255,则除磷错误,需要直接返回255即可
1.3.貌似javafx的类库可以实现颜色减淡叠加,我是自己实现的
/AtiPlatf_cms/src/com/attilax/img/SketchImg.java
BufferedImagecopy=(BufferedImage)newSketchImg(fx).setGausRadis(25).filter(imgx.toImg(fx));
1.4.Java Image Filters是一款基于Java的图像处理类库,特别是在图像滤镜特效方面,
Java Image Filters简直就是强大到天衣无缝。它几乎提供了PS上大部分的图像特效。比如反色特效、图像扭曲、水波和纹理等效果。
更多特效大家可以去它的官方网站,也可以下载这个类库使用。链接见文末的软件首页和软件下载。
以下是Java Image Filters提供的所有图像滤镜特效以及每一种特效实现算法思路:
1.4.1.色彩调整