Atitit Atitit 图像处理之 Oilpaint油画滤镜 水彩画 源码实现
Atitit Atitit 图像处理之 Oilpaint油画滤镜 水彩画 源码实现
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油画滤镜 水彩画 源码实现的更多相关文章
- Atitit 图像处理之仿油画效果 Oilpaint油画滤镜 水彩画 漫画滤镜 v2
Atitit 图像处理之仿油画效果 Oilpaint油画滤镜 水彩画 漫画滤镜 v2 1.1. 具体源码参考1 2. ,油画 水彩画具有几个比较明显的特点如下:1 2.1. 明暗层次(灰度)较少 也 ...
- 图像滤镜艺术---Oilpaint油画滤镜
原文:图像滤镜艺术---Oilpaint油画滤镜 Oilpaint油画滤镜 图像油画效果实际上是将图像边缘产生一种朦胧,雾化的效果,同时,将一定的边缘模糊化,这样图像整体上看去像素与像素之间 ...
- Atitit 图像清晰度 模糊度 检测 识别 评价算法 源码实现attilax总结
Atitit 图像清晰度 模糊度 检测 识别 评价算法 源码实现attilax总结 1.1. 原理,主要使用像素模糊后的差别会变小1 1.2. 具体流程1 1.3. 提升性能 可以使用采样法即可..1 ...
- 图像处理之直方图均衡化及C源码实现
1 直方图均衡化(Histogram Equalization)简介 图像对比度增强的方法可以分成两类:一类是直接对比度增强方法;另一类是间接对比度增强方法.直方图拉伸和直方图均衡化是两种最常见的间接 ...
- IPOL图像处理分析经典在线(文献+源码)
网址: IPOL Journal · Image Processing On Line https://www.ipol.im/ 分类: 搜索: 下载文献和源码: NLM算法:IPOL Journal ...
- Atitit 常用比较复杂的图像滤镜 attilax大总结
Atitit 常用比较复杂的图像滤镜 attilax大总结 像素画滤镜 水彩油画滤镜 素描滤镜 梦幻镜 特点是中央集焦,周围景物朦化微带光晕,使人产生如入梦境的感觉.常用于拍摄婚纱.明星照,也用于其它 ...
- Atitit MATLAB 图像处理 经典书籍attilax总结
Atitit MATLAB 图像处理 经典书籍attilax总结 1.1. MATLAB数字图像处理1 1.2. <MATLAB实用教程(第二版)>((美)穆尔 著)[简介_书评_在线阅读 ...
- Atitit MATLAB 图像处理attilax总结
Atitit MATLAB 图像处理attilax总结 1.1. 下载 Matlab7.0官方下载_Matlab2012 v7.0 官方简体中文版-办公软件-系统大全.html1 1.2. Matla ...
- Atitit 项目源码的架构,框架,配置与环境说明模板 规范 标准化
Atitit 项目源码的架构,框架,配置与环境说明模板 规范 标准化 版本1.0 作者 艾龙 attilax 1. 概述:核心业务: 1 1.1. 功能文档路径 /palmWin/src/docum ...
随机推荐
- ES 2.4 bigdesk 安装失败解决方案.
把zip包下载下来 https://github.com/lukas-vlcek/bigdesk/tree/master 在plugin中自己建一个bigdesk 文件夹 在bigdesk下建一个_s ...
- 页面点击任意js事件,触发360、IE浏览器新页面
在<head></head>标签中 <base target=_self> 不会再增加页面
- Ubuntu 14.04安装mysql
在ubuntu kylin上面安装mysq的过程中遇到一些问题,记录如下, wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-server_5. ...
- 从MyEclipse转战到IntelliJ IDEA的经历
从MyEclipse转战到IntelliJ IDEA的经历 我一个朋友写了一篇"从Eclipse到Android Studio"博文,于是心潮澎湃我也想一篇,分享自己用这个IDEA ...
- iOS 报错 :Duplicate interface definition for class’*'
这个是重复导入引起的,但是一般的重复导入会在C里的include.而在项目中我们移动项目的位置,比如从某一文件夹移到另一文件夹,路径改变的话会导致项目的中预编译文件PrefixHeader.pch的路 ...
- (转)为什么用ls和du显示出来的文件大小有差别?
曾经有几次,我用ls和du查看一个文件的大小,发现二者显示出来的大小并不一致,例如: bl@d3:~/test/sparse_file$ ls -l fs.img-rw-r--r-- 1 bl bl ...
- jQuery中$.fn的用法
原文:http://www.jb51.net/article/42816.htm $.fn是指jquery的命名空间,$.fn=$.prototype. 1.$.extend 为jquery添加静态方 ...
- IOS Alcatraz Xcode6.4安装指南
1.Alcatraz Alcatraz是Xcode上的插件管理器,用过notepad++应该印象深刻,近来在一部新机器 按以前的安装方法安装老是安装不成功.特意查找了下资料,最后安装成功. 2.安装过 ...
- 结对项目——高级四则运算检验器记录(168 & 187)
首先,上图(*+﹏+*)~@ 1.如何看待结对编程 结对编程优点: 1.两个人能够相互支持,相互监督,客服编程过程中可能出现的烦躁的情况0_0. 2.在开发功能的同时,伴随了UnitTest的进行,可 ...
- UIAlertController的使用
在iOS8中,苹果对UIAlertView和UIActionSheet进行了重新的封装,成为适应性更强,灵活性更高的UIAlertController.具体使用方法如下. UIAlertControl ...