文本圖像在圖像處理中也是佔用了一個比較大的空間,市面上也有着不少這方面的專業軟件,其中有一個比較重要的過程就是對文本圖像背景的純化,因爲背景複雜了後,對於後續的識別,包括二值化都會帶來不利的影響。 本文介紹三種不同的背景純化方式。
第一種方式: 借用Photoshop的一個算法,名字叫影印,英文名是PhotoCopy,這個算法的效果如下:
這裏借用了一個網絡上的圖片,細節和暗度的參數分別爲5和10,執行完成後進行了反色操作。
這個算法的核心還是高斯模糊,細節參數就是高斯模糊的半徑。
第二個算法:使用了一個網友的提供的算法,就叫他背景移除算法吧。
具體的可以在https://www.cnblogs.com/jsxyhelu這個大俠的博客中查找。
這個算法的基礎其實也是高斯模糊,一個簡答的代碼如下所示:
for (int Y = 0; Y < Height * Width; Y++) { if (Blur[Y] != 0) Dest[Y] = IM_ClampToByte(Src[Y] * 255 / Blur[Y]); }
第三個算法: 我們姑且叫他背景純化吧。
這個算法呢和Sauvola二值化有一定的聯繫,我們知道Sauvola二值化一直是局部閾值方法的標杆,他的核心是計算某個局部區域的的均值和方差,這裏也是把圖像先分塊,然後按照某種原則,計算每個塊內的均值和方差,接着呢對每個像素位置使用均布均值和方差按照一定的原則確定其最後的顯示值,當然,由於只計算了塊內的方差和均值,因此,每個像素處的均值和方差可以用類似CLAHE算法裏的方式進行插值獲取,或者已經有的數據進行曲線擬合後在計算得到,前者速度快,後者更精確。
關於這個的原理我沒有弄清楚,但是確實效果可以,注意他其實並沒有二值化的,實測這個算法效果還是不錯的。
原 圖 PhotoCopy的效果
背景去除算法的效果 背景純化算法的效果
上面這個結果,應該說後面兩個效果都還不錯的。
我們在看一個圖,區別就更爲明顯了。
原 圖 PhotoCopy的效果
背景去除算法的效果 背景純化算法的效果
可以看出,背景去除那個算法那原生的可以保留彩色的部分,其他的就不行,但是也可以適當的修改使得算法部分能得以保留。
但是,PhotoCopy算法還可以用在很多其他的場合,而後面的兩個算法如果用於普通的圖像,效果就有點過了。
我現在一直在改進最後一個算法,覺得他很有前景。
在我的SSE Demo裏也集成了上述三個算法,分別位於Styleize --> PhotoCopy、Detection->Auxliary->RemoveBackGround以及Detection->Auxliary->PureGround菜單下。
PureGround還有一些其他的選項,如下圖所示:
可在此處下載Demo: https://files.cnblogs.com/files/Imageshop/SSE_Optimization_Demo.rar