动态

详情 返回 返回

[快速閲讀十]簡易的文字圖像周邊突兀彩色異常區域去除算法。 - 动态 详情

  今天朋友給了一些拍照的文字圖像,由於噪音以及JPG編碼等因素的影響啊,在線條、文字等邊緣的部位放大後查看可以看到有明顯的彩色的斑點,這個對於後續的識別和處理都是不利的,因此,需要在進一步處理前把他們給去除掉,這裏經過測試提出一個簡單的算法,經過測試,還是有一定的效果的。

       

                原圖放大                              Deinterlace處理後放大

  如上圖所示,可以看到,在黑色線條和文字周邊存在彩色 的色斑,要想辦法儘量把這些彩色色斑去除,並且不影響整體的視覺效果。

  這個嘛,首先得看看我現有的算法是否有比較合適的結果的,找來找去,也就看到有個Deinterlace(去除交錯)有點意思,但是觀察呢發現,有幾個問題,一個是整體變得模糊了一些,第二呢,就是一些不需要改變的區域也改變了。

  這裏提出一個改進的思路,就是我們觀察,這類圖像啊,周邊的彩色噪點他的飽和度都比較高,而正常位置差異比較小,因此,可以通過飽和度的值來初步判斷這個要處理的區域。

  飽和度呢不要直接拿那個HSL模型裏直接計算飽和度的公式去處理,而是隻要計算RGB像素的最大值和最小值的差異,如果直接用差異大於某個閾值,判定那些區域需要處理的話,結果又會有很多過渡不自然的地方,因此,想到一種方法是用這個差異做權重,

並且為了可調節效果,還可以把這個差異按照參數在放大。

  即類似於下面的結果:

      Diff = max(b,g,r)-min(b,g,r);

      W = 255 - Diff * cof;

      if (W < 0)  W = 0;

      InvW = 255 - W;

      Result = Src * W + Deinterlace * InvW;

 

            

                  Cof = 1                                Cof = 2

  這種方法對於傾斜的彩色斑點的效果就要稍微弱一些,但是依舊是個不錯的解決方案,當然,如果彩色斑點的寬度超過3個像素,估計就要不好弄了。

  本文Demo下載地址:  https://files.cnblogs.com/files/Imageshop/SSE_Optimization_Demo.rar,本算法位於Detection(檢測相關)--》彩色斑點去除 菜單下,裏面的所有算法都是基於SSE實現的。
  

Add a new 评论

Some HTML is okay.