最近做一個圖像處理的項目,陸續地踩了很多坑。分享一下
做一些文檔的增強,功能如下:
1 圖像去黑邊
2 圖像銳化
3 紅頭套打
詳細思路
一 圖像去黑邊
圖像黑邊的產生原因分析:
a.由於文檔圖像在采集的時候(掃描/拍照等情況),可能存在光照不均勻,導致邊緣部分偏黑。二值化之后容易產生比較大的污染
b.掃描的文檔尺寸小於掃描儀的尺寸,產生黑邊
黑邊的特性:區域大,像素連通
解決思路:
a.找到大區域的聯通像素
b.將連通像素替換為白色
實際操作
1 對灰度圖像進行預處理---直方圖均衡,自適應均衡 opencv
2 對灰度圖做二值化,采用ots算法 opencv
3 使用分水嶺算法選出所有連通區域 skimage
4 腐蝕操作,將小黑點與大區域連通 opencv
4 去除小區域(黑色),獲得較大區域,制作掩碼
5 將掩碼與二值化結果做運算,去除黑邊
二 圖像銳化
運用圖像的基本加減運算 與 opencv 自帶的高斯模糊函數求得
對灰度圖做高斯模糊
mask = 原灰度圖-模糊圖
銳化圖= 原灰度圖 + mask
三 紅頭套打
保留原圖的部分紅頭區域(人工輔助選擇區域 ROI)
主要是像素替換操作
原圖
效果圖