java 图像特效之霓虹

这篇博客介绍了如何使用Java实现图像的霓虹特效。通过计算图像像素与相邻像素的梯度,对图像进行处理,产生类似霓虹灯的效果。算法涉及对3*3点阵中像素的红绿蓝分量进行差值计算,并应用平方根和平方操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

阅读本系列,请先看前言!谢谢

老实说,我也不知道什么是霓虹,但是在网上搜滤镜算法的时候看到了这个算法,就顺手实现了,所以童鞋们有什么想要实现的算法,可以把原理告诉我~

事实上,它实现的结果和我之后要写的彩色边缘很像,都奉献给大家了。

算法原理:

对于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 &
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值