java 图像特效之霓虹
来源:互联网 发布:c语言不等于 编辑:程序博客网 时间:2024/04/30 05:47
阅读本系列,请先看前言!谢谢
老实说,我也不知道什么是霓虹,但是在网上搜滤镜算法的时候看到了这个算法,就顺手实现了,所以童鞋们有什么想要实现的算法,可以把原理告诉我~
事实上,它实现的结果和我之后要写的彩色边缘很像,都奉献给大家了。
算法原理:
对于3*3点阵,首先计算原图象像素f(i,j)的红,绿,蓝分量与相同行f(i+1,j)及同列f(i,j+1)相邻象素的梯度,即差的平方之和的平方根,然后将梯度值作为处理后的象素g(i,j)的红,绿,蓝分量值。
设r1,g1,b1分别为原图象象素f(i,j)的红,绿,蓝分量值,r2,g2,b2分别为相同行相邻象素f(i+1,j)的红,绿,蓝分量值,r3,g3,b3分别为同列相邻象素f(i,j+1)的红,绿,蓝分量值,rr,gg,bb为处理后象素g(i,j)的红,绿,蓝分量值,则:
rr1=(r1-r2)^2 rr2=(r1-r3)^2
gg1=(g1-g2)^2 gg2=(g1-g3)^2
bb1=(b1-b2)^2 bb2(b1-b3)^2
rr=2*(rr1+rr2)^0.5
gg=2*(gg1+gg2)^0.5
bb=2*(bb1+bb2)^0.5
Ok,上代码:
public Image filter() {int[] d = new int[this.img.w*this.img.h]; //must be writed as this.not int[] d = this.img.data;for (int y = 0; y < this.img.h-1; y++) { for (int x = 0; x < this.img.w-1; x++) { int c = this.img.data[x + y * this.img.w]; int r = (c >> 16) & 0xFF; int g = (c >> 8) & 0xFF; int b = (c >> 0) & 0xFF; int Rowc = this.img.data[x + 1 + y * this.img.w];//相同行 int r1 = (Rowc >> 16) & 0xFF; int g1 = (Rowc >> 8) & 0xFF; int b1 = (Rowc >> 0) & 0xFF; int Colc = this.img.data[x + (y + 1)* this.img.w];//相同列 int r2 = (Colc >> 16) & 0xFF; int g2 = (Colc >> 8) & 0xFF; int b2 = (Colc >> 0) & 0xFF; int tr =(int)(2*Math.sqrt(((r-r1)*(r-r1)+(r-r2)*(r-r2)))); int tg =(int)(2*Math.sqrt(((g-g1)*(g-g1)+(g-g2)*(g-g2)))); int tb =(int)(2*Math.sqrt(((b-b1)*(b-b1)+(b-b2)*(b-b2)))); d[x + y * this.img.w] = (255 << 24) | (math.st(tr) << 16) | (math.st(tg) << 8) | math.st(tb); } }this.img.data = d;return this.img;}
运行结果:
最后一个太漂亮了,实在不忍心添加水印破坏美感
以上
0 0
- java 图像特效之霓虹
- android图片特效之霓虹发光
- 图像滤镜特效(曝光、霓虹、连环画、熔铸)(二)
- java 图像特效之素描
- java 图像特效之油画
- java 图像特效之老照片
- java 图像特效之随机光晕
- java 图像特效之放大镜与哈哈镜
- java 图像特效之彩色边缘
- 图像特效之水彩特效
- 图像特效之灯光特效
- 图像特效之挤压特效
- 图像特效之波浪特效
- java 图像特效之图像混合(溶图)
- 图像特效之电影海报
- 图像特效之连环画
- 图像特效之马赛克
- 图像特效之漩涡
- JAVA开发者最常去的20个英文网站
- C++为什么抓不到除0错“异常”?
- VBS之CreateObject调用对象
- 网页开发按顺序执行 script function 返回 undefined ,
- UVA10313- Pay the Price
- java 图像特效之霓虹
- UML中的各种关系在代码中的实现
- Hadoop MapReduce 减小数据倾斜的性能损失
- hdu 1083 Courses(二分图匹配 匈牙利算法)
- Oracle decode函数
- 菜鸟学android——正则表达式,替换
- 线段树2练习
- Servlet第三课 Form 表单的应用
- spring3.0.5MVC 文件下载IE提示无法下载问题解决