java在图像中加入噪声_JAVA图像处理系列(四)——噪声

图像噪声是指存在于图像数据中的不必要的或多余的干扰信息。为图像添加噪声,常见有以下几种方法:

(1)高斯噪声

(2)脉冲噪声

(3)泊松噪声

高斯噪声

高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。高斯分布,也称正态分布,又称常态分布,记为N(μ,σ2),其中μ,σ2为分布的参数,分别为高斯分布的期望和方差。当有确定值时,p(x)也就确定了,特别当μ=0,σ^2=1时,X的分布为标准正态分布。

给图像添加告诉高斯噪声的代码如下:

import java.awt.image.BufferedImage;

import java.util.Random;

public class GaussianNoise {

private Random rand = new Random(System.currentTimeMillis());

private int generateNoise(int color) {

double alpha, beta, sigma, value;

alpha = rand.nextDouble();

if (alpha == 0.0)

alpha = 1.0;

double SigmaGaussian = 4.0;

double TauGaussian = 20.0;

double tau;

beta = rand.nextDouble();

sigma = Math.sqrt(-2.0 * Math.log(alpha)) * Math.cos(2.0 * Math.PI * beta);

tau = Math.sqrt(-2.0 * Math.log(alpha)) * Math.sin(2.0 * Math.PI * beta);

value = (double) color + Math.sqrt((double) color) * SigmaGaussian * sigma + TauGaussian * tau;

if (value < 0.0)

return 0;

if (value > 255)

return (int) 255;

return (int) (value + 0.5);

}

public BufferedImage addNoiseImage(BufferedImage image) {

BufferedImage bimg = new BufferedImage(image.getWidth(),image.getHeight(),BufferedImage.TYPE_INT_RGB);

Pixel pixel = new Pixel();

for (int y = 0; y < image.getHeight(); y++) {

for (int x = 0; x < image.getWidth(); x++) {

pixel.setRGB(image.getRGB(x, y));

pixel.red = generateNoise(pixel.red);

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值