2012-07-08 140 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