Atitit (Sketch Filter)素描滤镜的实现 图像处理 attilax总结
Sch lg java d sketch filter aigo se ,ma sinsho ..byedu 3page ma ...
素描滤镜的实现方法比较简单,这里我们直接写出算法过程如下:
1,对原图S进行去色命令得到灰度图A;
2,对A进行反色得到图像B;
3,对B进行高斯模糊得到图C;
4,将C与B进行颜色减淡的图层混合算法:
P(x,y) =Pb(x,y) + (Pb(x,y)* Pc(x,y)) / (256 - Pc(x,y));
在步骤3中,可以添加变量edgeIntensity(edgeIntensity>=0),来控制素描的边缘强度;
以上就是素描的算法实现。
对于素描,先介绍算法,一般而言素描的算法如下:
1.图像灰度化
2.求图像的底片
3.对底片进行高斯模糊
4.模糊后的结果与灰度图像进行图像混合,效果为颜色减淡(图像混合,后面我也会写一篇文章讨论下),公式为:
C =MIN( A +(A×B)/(255-B),255)
既然知道了算法,现在开始代码:
Java Image Filters是一款基于Java的图像处理类库,特别是在图像滤镜特效方面,Java Image Filters简直就是强大到天衣无缝。它几乎提供了PS上大部分的图像特效。比如反色特效、图像扭曲、水波和纹理等效果。
更多特效大家可以去它的官方网站,也可以下载这个类库使用。链接见文末的软件首页和软件下载。
以下是Java Image Filters提供的所有图像滤镜特效以及每一种特效实现算法思路:
色彩调整
ChannelMixFilter-混合RGB通道
ContrastFilter-调整亮度和对比度
CurvesFilter-调整曲线的图像
DiffusionFilter-抖动
DitherFilter-有序抖动
ExposureFilter-改变图像的曝光度
GainFilter-调节增益和偏置
GammaFilter-调整图像伽玛
GrayFilter-图像灰度
GrayscaleFilter- 转换成灰度图
HSBAdjustFilter-调节色调,饱和度和亮度
InvertAlphaFilter-反转Alpha通道
InvertFilter-反转图像色彩
LevelsFilter-调整图像的水平度
LookupFilter-改变图像色彩查询表
MapColorsFilter- 颜色替换
MaskFilter-遮罩
PosterizeFilter-分色
QuantizeFilter-量化的图像为256色,比如说,GIF出口
RescaleFilter-颜色缩放因子
RGBAdjustFilter- 调整红、绿、蓝三个分量
SolarizeFilter- 过渡曝光
ThresholdFilter- 颜色阈值
TritoneFilter-创建一个三色调图像
变形和扭曲
BicubicScaleFilter- Scaling with bicubic interpolation
CircleFilter- 让图像扭曲成圆环
CropFilter- 图像区域剪裁
DiffuseFilter- Diffuse the pixels of an image
DisplaceFilter-玻璃效果
DissolveFilter-随机像素透明溶解的图像
FieldWarpFilter- Warp images using a field warp algorithm
FlipFilter- 翻转和旋转图像
KaleidoscopeFilter-万花筒效果
MarbleFilter-大理石纹效果
MirrorFilter- 镜像效果
OffsetFilter-偏移平铺图像
PerspectiveFilter-透视畸变
PinchFilter- Whirl-and-pinch distortion
PolarFilter-极坐标转换效果
RippleFilter-纹波失真
RotateFilter- 翻转图像
ScaleFilter- 原点缩放图像
ShearFilter- Shear an image
SphereFilter-镜头畸变
SwimFilter- 水下波纹效果
TileImageFilter- 图像平铺效果
TwirlFilter- 扭曲变形
WarpFilter- A general grid image warp
WaterFilter- 模拟水波效果
1.//为每一个动作注册名称和对应的滤镜
2.ContourFilter("轮廓",newContourFilter()),
3.DespeckleFilter("去斑",newDespeckleFilter()),
4.DiffusionFilter("扩散",newDiffusionFilter()),
5.EdgeFilter("滤光",newEdgeFilter()),
6.EmbossFilter("浮雕",newEmbossFilter()),
7.EqualizeFilter("补偿",newEqualizeFilter()),
8.Flush3DFilter("3D",newFlush3DFilter()),
9.LevelsFilter("水平",newLevelsFilter()),
10.LightFilter("光源",newLightFilter()),
11.MedianFilter("中线",newMedianFilter()),
12.OilFilter("曝光",newOilFilter()),
13.PlasmaFilter("等离子",newPlasmaFilter()),
14.QuantizeFilter("量子化",newQuantizeFilter()),
15.SmearFilter("风化",newSmearFilter());
参考资料
ImageMagick使用for java(im4java) - IT之常青藤 - 博客频道 - .html
图像滤镜艺术---(Sketch Filter)素描滤镜 - Trent1985的专栏 - 博客频道 - .html
java 图像特效之素描 - epleone的专栏 - 博客频道 - .html
JAVA灰度化、二值化图片如此简单方便 - - 博客频道 - .html
图像处理 - 流浪的鱼 - 博客频道 - .html
JavaFX使用摄像头API的示例 - 蛙声梦塘-Yizdream 专栏 - 博客频道 - .html
图像处理之基于像素的图像混合 - 流浪的鱼 - 博客频道 - .html
作者::绰号:老哇的爪子(全名::AttilaxAkbarAlRapanui阿提拉克斯阿克巴阿尔拉帕努伊)
汉字名:艾提拉(艾龙),EMAIL:1466519819@
转载请注明来源:/attilax
Atiend