2012-02-10 114 views
3

我有一些掃描圖像,其中掃描儀似乎引入了我以前沒有遇到的某種噪聲。我想找到一種方法來自動刪除它。噪音看起來像高頻垂直剪切。換句話說,應該看起來像------------的水平線顯示爲/\/\/\/\/\/\/\/\/\,其中剪切的振幅和頻率看起來很規則。從圖像中刪除高頻垂直剪切噪聲

可有人建議做以下步驟的方法嗎?

  1. 給定圖像,確定剪切噪聲的頻率和幅度。人們可以假設它始終是垂直的,並且特徵頻率高於圖像中自然出現的其他頻率。

  2. 鑑於上述參數,適用相反的,垂直的,週期性的剪切圖像,以取消此噪聲。

這也將是有益知道如何解決這些使用免費提供的圖像處理軟件包實現的手段來實現。 (Netpbm,ImageMagick,Gimp,一些Python庫是一些例子。)

更新:下面是一個帶有這種失真圖像的示例。實際上,這個樣本表明剪切幅度在整個圖像中不需要是均勻的。 :-( 原始圖像是較高的分辨率(600dpi的)

enter image description here

回答

0

我的問題的解決辦法是使用FFT將圖像轉換到頻域的結果將是兩個矩陣:所述圖像信號的幅度和該圖像信號的相位。這兩個矩陣應具有輸入圖像的相同的尺寸。

現在,應使用幅度矩陣檢測THA對應於噪聲的頻率區域中的尖峯。需要注意的是這個矩陣的這個角的左上角應該對應於低頻成分,而從右下角到高頻。

你已經中標識穗後,應設置相應的係數(振幅矩陣項)爲零。應用逆FFT後,您應該得到沒有噪聲的輸入圖像。

請了一個更具體的(實際)問題的解決方案提供了一個示例圖像。

+0

我已經讀過一本優秀的圖像處理書。去除峯值將是「擦除」幅度矩陣上最亮(可能最暗,取決於慣例)的斑點,然後使用校正後的矩陣將圖像變回。 – heltonbiker 2012-02-10 20:01:57

+0

圖像處理手冊(CRC出版社),第6版,第6章,圖6.26 - 去除週期性噪音 – heltonbiker 2012-02-10 20:06:46

+0

Alceu&heltonbiker,感謝您的建議。我已經考慮過這個選項,但下面的問題值得思考。噪聲不具有附加性,如果能夠有效地表示爲「噪聲圖像=真實圖像+噪聲」,則是這種情況。它顯示爲垂直剪切,其中整個像素列以週期性方式上下移動,即「噪聲圖像=剪切變換(真實圖像)」。我認爲對於圖像完整性來說,通過應用另一個剪切變換而不是相加來消除噪聲會更好。 – 2012-02-10 22:33:34

0

你可以使用霍夫配合或RANSAC首先擬合線。爲了讓霍夫工作,您可能需要使用高斯模糊或形態擴張來「塗抹」這些點,以便在參數空間中獲得給定(rho,theta)線的更多命中。

一旦你有行配合,你可以決定原始點,每條線的相對距離。從這些空間信息中,您可以使用FFT找到幫助找到「最佳擬合」空間頻率,然後相應地上/下移動像素。

作爲第一放,你甚至可以跳過FFT和使用更強力的方法:

  1. 查找使用霍夫或RANSAC的最佳擬合線。
  2. 確定線的方向。
  3. 垂直於(名義上)水平線進行取樣,找出沿着該列的點相對於最接近的最佳擬合線。
  4. 如果沿着一個樣本的點距最佳擬合線平均距離+ N,則將該列(或沿着該垂直樣本)的所有像素移動-N。

如果沿垂直樣本的剪切是一致的,但不一定是從左到右,這種技術應該可以工作。如果剪切始終完全垂直,那麼找到水平線應該相對容易。

從樣本圖像來看,它看起來好像剪切可以是跨一個3路或4路交叉點與標稱垂直線段之間的水平線段相一致。您可以使用拐角檢測器或其他方法來查找這些交叉點,以限制像素移位操作發生的範圍。

的技術我張貼在這裏是另一種方式找到的情況下,暗像素的水平伸展它們不屬於一行: Is there an efficient algorithm for segmentation of handwritten text?

所有這一切不談,有沒有你可能會掃描儀固定的一個機會?

+1

謝謝!如果我有名譽,我會高興。這看起來很有幫助,但我首先必須閱讀你所建議的方法。修復掃描儀將是最簡單的選擇。不幸的是,這是一個來自圖書館的古老而笨重的縮微閱讀器,我不相信它可以被凡人所解決。 : -/ – 2012-02-11 10:42:39

+0

不客氣!讓我知道如果你卡住了,我會盡力幫忙。 – Rethunk 2012-02-11 20:55:22