最近做一个图像处理的项目,陆续地踩了很多坑。分享一下
做一些文档的增强,功能如下:
1 图像去黑边
2 图像锐化
3 红头套打
详细思路
一 图像去黑边
图像黑边的产生原因分析:
a.由于文档图像在采集的时候(扫描/拍照等情况),可能存在光照不均匀,导致边缘部分偏黑。二值化之后容易产生比较大的污染
b.扫描的文档尺寸小于扫描仪的尺寸,产生黑边
黑边的特性:区域大,像素连通
解决思路:
a.找到大区域的联通像素
b.将连通像素替换为白色
实际操作
1 对灰度图像进行预处理---直方图均衡,自适应均衡 opencv
2 对灰度图做二值化,采用ots算法 opencv
3 使用分水岭算法选出所有连通区域 skimage
4 腐蚀操作,将小黑点与大区域连通 opencv
4 去除小区域(黑色),获得较大区域,制作掩码
5 将掩码与二值化结果做运算,去除黑边
二 图像锐化
运用图像的基本加减运算 与 opencv 自带的高斯模糊函数求得
对灰度图做高斯模糊
mask = 原灰度图-模糊图
锐化图= 原灰度图 + mask
三 红头套打
保留原图的部分红头区域(人工辅助选择区域 ROI)
主要是像素替换操作
原图
效果图