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://blog.csdn.net/attilax

Atiend

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

  1. java水彩画效果滤镜_Atitit Atitit 图像处理之  Oilpaint油画滤镜 水彩画 源码实现...

    AtititAtitit图像处理之Oilpaint油画滤镜 水彩画 源码实现 1.1.具体原理参考 Atitit图像处理之仿油画效果Oilpaint油画滤镜 水彩画漫画滤镜v2 2.水彩画滤镜算法如下 ...

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

    Oilpaint油画滤镜 图像油画效果实际上是将图像边缘产生一种朦胧,雾化的效果,同时,将一定的边缘模糊化,这样图像整体上看去像素与像素之间就像雾一样随机呈现. 算法过程如下: 假设当前像素为 P(x ...

  3. C语言数字图像处理进阶---15 油画滤镜

    油画滤镜(Oilpaint) 油画(an oil painting:a painting in oils)是以用快干性的植物油调和颜料,在画布亚麻布,纸板或木板上进行制作的一个画种.作画时使用的稀释剂 ...

  4. matlab去除坏点,图像处理之坏点校正及源码实现

    1.坏点介绍 图像坏点(Bad pixel) : 图像传感器上光线采集点(像素点)所形成的阵列存在工艺上的缺陷,或光信号进行转化为电信号的过程中出现错误,从而会造成图像上像素信息错误,导致图像中的像素 ...

  5. python检测屏幕亮点_图像处理之坏点校正及源码实现

    1 坏点介绍 图像坏点(Bad pixel) : 图像传感器上光线采集点(像素点)所形成的阵列存在工艺上的缺陷,或光信号进行转化为电信号的过程中出现错误,从而会造成图像上像素信息错误,导致图像中的像素 ...

  6. FPGA图像处理_OTSU算法的实现(含源码)

      由于图像阈值的直观性和易于实现的性质,使它在图像分割应用中处于中心地位.阈值分割方法实际上是输入图像fff到输出图像ggg的变换,如式所示. g(i,j)={1,f(i,j)>=T0,f(i ...

  7. 基于Visual Question Answerin的视觉图像文本图像处理系统 设计报告+Python设计源码

    资源下载地址:https://download.csdn.net/download/sheziqiong/85609792 新技术在 Visual Question Answering中的应用 摘要 ...

  8. 图像处理——常用阈值分割方法及源码

    目录 1.Otsu阈值分割 2.自适应阈值分割 3. 最大熵阈值分割法 4. 迭代阈值分割 5.测验 1.Otsu阈值分割 Otsu(大津法或最大类间方差法)使用的是聚类的思想,把图像的灰度数按灰度级 ...

  9. 【资源分享】数字图像处理MATLAB版冈萨雷斯+中文高清版+随书源码链接

    写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友. 目录 1.数字图像处理MATLAB版冈萨雷斯+中文高清版 2.数字图像处理MATLAB版冈萨雷斯随书源码 1.数字图像处 ...

  10. Atitit MATLAB 图像处理attilax总结

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

最新文章

  1. 调整CentOS的文字登陆界面的分辨率
  2. python安装在哪个盘_python要安装在哪个盘
  3. gperf学习笔记(二)
  4. Maven(一):安装与环境配置、使用Maven搭建web项目
  5. 浏览器窗口控制---使用localStorage
  6. 使用代码自动打开ABAP Editor
  7. 用队列和栈的知识点解决迷宫问题
  8. 兄弟们别加班了,老板不会因为你拼命写代码而感谢你啊~有木有啊
  9. 使用libsvm(faruto)工具箱问题小结
  10. iphone编程,使用代码结束程序
  11. 【详细】小程序模板使用教程
  12. 【积分变换】积分变换常用公式定理与方法
  13. 面试珠玑 嵌入式C程序员经典笔试题一
  14. 我的25年嵌入式生涯-周立功
  15. react移动端登录(第三方登录)和个人执行实现
  16. Solr从数据库导入数据(DIH)
  17. 【有利可图网】PS实战系列:合成奇幻星空下的童话场景
  18. ARGB1555内部存储空间的大小与ARGB转换方式
  19. 区块链食品安全(区块链食品安全溯源系统痛点)
  20. Linux下的硬盘信息查看

热门文章

  1. IntelliJ IDEA for CleanCode
  2. Windows下vim方式操作软件+Gvim使用
  3. 生产者消费者模式-Java实现
  4. TCP/IP 协议大致的概念
  5. canvas视频逐帧播放
  6. sql语句:CASE WHEN END 的用法
  7. LoadRunner场景参数文件部分参数说明
  8. 2011-10-10
  9. 讲解SQL Injection一篇不错的文章,地址贴一下
  10. BZOJ 2839: 集合计数 解题报告