【问题标题】:Adding Noise to an Image为图像添加噪点
【发布时间】:2012-07-08 03:25:37
【问题描述】:

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

我在网上搜索并发现了高斯噪声,但教程/文章要么只显示对我不是很有用的代码示例,要么显示复杂的数学解释。

【问题讨论】:

  • 您的编程相关问题是什么?

标签: java image bufferedimage noise gaussian


【解决方案1】:

不清楚您的问题是什么,但这里有一些随机观察,以防它们有所帮助:

  • 如果图像相对未经处理(未按大小缩放),则每个像素中的噪声大致是独立的。所以你可以通过依次循环每个像素、计算一个新的噪声值并添加它来模拟它。

  • 即使图像已被处理,上述方法通常也是一个合理的近似值。

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

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

很可能你想做的是:

  • 选择一个 SD(您希望图像有多嘈杂)

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

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

更新我想夜视将成为天文成像之类的东西。在这种情况下,您可以尝试改变每个像素的 SD,使其包含一个常数加上取决于亮度平方根的值。因此,假设一个像素的亮度为b,那么您可以使用100 + 10 * sqrt(b) 作为 SD。您需要使用这些值,但这可能看起来更现实。

【讨论】:

  • 非常感谢,我的目的是创建一个夜视图像过滤器,因此我将彩色图像变成单色绿色,然后使用您的算法在其上添加噪声。不是完美的假夜视效果,但也不错。
猜你喜欢
  • 1970-01-01
  • 2015-11-07
  • 2011-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-09
  • 2014-02-23
  • 1970-01-01
相关资源
最近更新 更多