2012-07-08 92 views
0

我想向Java中的BufferedImage添加噪声,但我更感兴趣的是用于向图像添加噪声的算法,而不是Java或任何其他语言特定的实现。向图像添加噪声

我搜索了网页,发现了高斯噪声,但教程/文章或者只显示对我来说不是很有用的代码示例,或者复杂的数学解释。

+2

什么是你的编程相关的问题? – 2012-07-08 12:10:52

回答

1

目前尚不清楚你的问题是什么,但这里的的情况下,一些随机观察他们帮助:

  • 如果图像是比较未处理(它不是在大小被缩放),然后在每个噪声像素大致是独立的。因此,您可以通过依次循环每个像素,计算新的噪声值并添加它来模拟。

  • 即使图像已经被处理,上面的方法通常是合理的近似。

  • 图像中的噪音量取决于很多因素。对于由数字传感器产生的典型图像,常见的近似值是每个像素中的噪声大致相同。换句话说,您选择一些标准偏差(SD),然后在上面的循环中从具有该SD的高斯分布中选择一个值。

  • 对于天文图像(以及其他低噪声电子图像),存在一个噪声分量,其中SD与像素亮度的平方根成比例。

所以有可能你想要做的是:

  • 选择一个SD(您想怎样嘈杂的形象定)

  • 在一个循环中,每个像素:

    • 从给定SD(平均值为零)的高斯生成一个随机数,并将其添加到像素(假设为灰度图像)。对于彩色图像生成三个值并分别将它们添加到红色,绿色和蓝色。

更新我想象夜视将是像天文数字成像。在这种情况下,您可以尝试改变每个像素的SD,以便它包含一个常数加上取决于亮度平方根的东西。所以说,如果一个像素的亮度为b那么你可以使用100 + 10 * sqrt(b)作为SD。你需要玩的价值观,但看起来更现实。

+0

非常感谢,我的目的是创建一个夜视图像过滤器,以便将彩色图像转换为单色绿色,然后使用您的算法为其添加噪音。不是完美的假夜间效果,但也不是太差。 – john27 2012-07-08 20:30:40

+0

看到更新可能的改进。 – 2012-07-08 21:52:39