Atitit Atitit 图像处理之 Oilpaint油画滤镜 水彩画 源码实现

1.1. 具体原理参考1

2. 水彩画滤镜算法如下:1

2.1. 这个其实就是灰度层次降低维度的过程。2

2.2. 模板半径Radius用来调节水彩画的水彩程度。即是颜色的降低维度的过程2

1.1. 具体原理参考

Atitit 图像处理之仿油画效果 Oilpaint油画滤镜 水彩画 漫画滤镜 v2

2. 水彩画滤镜算法如下:

灰度,离散化(聚类)。。

灰度层次N就是水彩画最多使用的颜色明暗层次,一般7种一下为好

1,假设原始图像为F(x,y),灰度化得到G(x,y);

2,构建一个半径为Radius的正方形模板M,边长为2*Radius+1;

3,将M在F上依次遍历每个像素,对于当前像素P(x,y):

设置灰度层次N,由于图像灰度值范围为0-255, 主要用来对像素的灰度层次聚类

3.1首先按照N将0-255的范围划分为等距的N个灰度层次,对于模板中对应的像素,我们按照其灰度值,依次将其放入相应的灰度层次;

3.2统计N个灰度层次像素数目,计算像素数最多的那个层次内,像素的各个颜色分量均值Mean,这个均值RGB就是模板中心像素P(x,y)的值。

2.1. 这个其实就是灰度层次降低维度的过程。

注意:油漆桶数N可以调节图像平滑度,灰度层次,

2.2. 模板半径Radius用来调节水彩画的水彩程度。即是颜色的降低维度的过程

3. 源码算法/AtiPlatf_cms/src/com/attilax/img/OilPaintV2.java

private void process(BufferedImage src, int grayLevDeep, int radis) throws FileExistEx {

//初始化矩阵扫描模板

mtrx = new Matrix().setRadis(radis).setImg(src);

//初始化灰度层次分类器

GrayLayerCater GrayLayerCater1 = new GrayLayerCater(); // ini

GrayLayerCater_rgbmod_dbg = GrayLayerCater1;

//初始化灰度层次,为n层

List<Layer> li = GrayLayerCater1.iniLayers_groupByGray(grayLevDeep, 255);

//初始化选框矩阵扫描器

ImgTraver_byMatrix trvr = new ImgTraver_byMatrix(mtrx);

//设置扫描到每个像素的事件处理

trvr.cur_Pix_Point_Evt_Handler = (cur_point) -> {

//对模板选框内内的像素对灰度聚合分类,分别放在不同的灰度层次里面

GrayLayerCater1.assignMatrixColorsToBukesByPerColorGray(mtrx);

//得到最多像素点的那个灰度层次,丢弃其他层次像素信息

Layer MaxPixsLayer1 = GrayLayerCater1.MaxPixsLayer();

//计算颜色均值,分别对各个rgb分量计算,与合成

Color avgColor = MaxPixsLayer1.avgColor_retClr();

Point mtrxCenter_Point = mtrx.getCenterPoint();

try {

src.setRGB(cur_point.x, cur_point.y, avgColor.getRGB());

//因为扫描的时候,模板可能超出图像边界,最后一行像素简化处理,忽略错误即可

} catch (ArrayIndexOutOfBoundsException e) {

System.out.println(e.getMessage() + "  point:" + cur_point);

}

};

trvr.trave(src); //开始扫描

}

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )

汉字名:艾提拉(艾龙),   EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

Atiend

Atitit Atitit 图像处理之  Oilpaint油画滤镜 水彩画 源码实现的更多相关文章

  1. Atitit 图像处理之仿油画效果 Oilpaint油画滤镜 水彩画 漫画滤镜 v2

    Atitit 图像处理之仿油画效果 Oilpaint油画滤镜 水彩画 漫画滤镜 v2 1.1. 具体源码参考1 2. ,油画 水彩画具有几个比较明显的特点如下:1 2.1. 明暗层次(灰度)较少  也 ...

  2. 图像滤镜艺术---Oilpaint油画滤镜

    原文:图像滤镜艺术---Oilpaint油画滤镜  Oilpaint油画滤镜     图像油画效果实际上是将图像边缘产生一种朦胧,雾化的效果,同时,将一定的边缘模糊化,这样图像整体上看去像素与像素之间 ...

  3. Atitit 图像清晰度 模糊度 检测 识别 评价算法 源码实现attilax总结

    Atitit 图像清晰度 模糊度 检测 识别 评价算法 源码实现attilax总结 1.1. 原理,主要使用像素模糊后的差别会变小1 1.2. 具体流程1 1.3. 提升性能 可以使用采样法即可..1 ...

  4. 图像处理之直方图均衡化及C源码实现

    1 直方图均衡化(Histogram Equalization)简介 图像对比度增强的方法可以分成两类:一类是直接对比度增强方法;另一类是间接对比度增强方法.直方图拉伸和直方图均衡化是两种最常见的间接 ...

  5. IPOL图像处理分析经典在线(文献+源码)

    网址: IPOL Journal · Image Processing On Line https://www.ipol.im/ 分类: 搜索: 下载文献和源码: NLM算法:IPOL Journal ...

  6. Atitit 常用比较复杂的图像滤镜 attilax大总结

    Atitit 常用比较复杂的图像滤镜 attilax大总结 像素画滤镜 水彩油画滤镜 素描滤镜 梦幻镜 特点是中央集焦,周围景物朦化微带光晕,使人产生如入梦境的感觉.常用于拍摄婚纱.明星照,也用于其它 ...

  7. Atitit MATLAB 图像处理 经典书籍attilax总结

    Atitit MATLAB 图像处理 经典书籍attilax总结 1.1. MATLAB数字图像处理1 1.2. <MATLAB实用教程(第二版)>((美)穆尔 著)[简介_书评_在线阅读 ...

  8. Atitit MATLAB 图像处理attilax总结

    Atitit MATLAB 图像处理attilax总结 1.1. 下载 Matlab7.0官方下载_Matlab2012 v7.0 官方简体中文版-办公软件-系统大全.html1 1.2. Matla ...

  9. Atitit 项目源码的架构,框架,配置与环境说明模板 规范 标准化

    Atitit 项目源码的架构,框架,配置与环境说明模板  规范 标准化 版本1.0 作者 艾龙 attilax 1. 概述:核心业务: 1 1.1. 功能文档路径 /palmWin/src/docum ...

随机推荐

  1. oracle数据库下的关系(库,实例,用户,表)

    一.数据库数据库顾名思义是数据的集合,而Oracle则是管理这些数据集合的软件系统,它是一个对象关系型的数据库管理系统.     二.表空间表空间是Oracle对物理数据库上相关数据的逻辑映射.一个数 ...

  2. Redis第二篇(Redis基本命令)

    -x     从标准输入读取一个参数 such as: echo –en “shaw” |./redis-cli –x setname == set name shaw -r     重复执行一个命令 ...

  3. 动画总结(UIView的动画)

    Main.storyboard ViewController.m // //  ViewController.m //  8A08.动画总结 // //  Created by huan on 16/ ...

  4. Oracle学习笔记2

    主键 create table userinfo_test( userid number(3,0), username varchar2(20), pwd varchar2(20), constrai ...

  5. Java中将0x开头的十六进制字符串转换成十进制整数

    1.Integer.toString(int i) 由于input(输入数据)是以0x开头的字符串,并不是整型.因而在用 String s = Integer.toString(input); 时用会 ...

  6. SCRUM站立会议

    SCRUM站立会议是让团队成员每日面对面站立互相交流他们所承担任务的进度.它的一个附带好处是让领导或经理能了解 到工作情况.本质上是为了团队交流,不是报告会议! 功能: 1)创造团队成员相互沟通的条件 ...

  7. EXCEL设置选中单元格样式

    你想这样啊,试试这段代码看行不:右键工作表名称--查看代码,在空白处粘贴就可以 Private Sub Worksheet_SelectionChange(ByVal Target As Range) ...

  8. 如何将APP部署在阿里云服务器

    1,APP应用需要什么样的云服务器? 为了帮助大家了解如何使用阿里云云服务器及相关应用,阿里云的移动云团队开发了一个简单的APP应用:移动云相册,其中使用了ECS主要用作部署云相册的API服务(图片信 ...

  9. RHEL6.5中完成播放音乐的“大业”

    参考文章:http://ylw6006.blog.51cto.com/470441/589964 感谢:ylw6006@51CTO 首先,费了不少劲去找到三个文件(还要对应版本el6.i686或el6 ...

  10. java-API中的常用类,新特性之-泛型,高级For循环,可变参数

    API中的常用类 System类System类包含一些有用的类字段和方法.它不能被实例化.属性和方法都是静态的. out,标准输出,默认打印在控制台上.通过和PrintStream打印流中的方法组合构 ...