基础概念
- 灰度
使用黑色调表示物体,不同的饱和度的黑色来显示图像,灰度值范围为0~255
。
- 图像灰度化
图像灰度化就是让像素点矩阵中的每个像素点满足关系: R=G=B


- 图像二值化
将图像上的像素点的灰度值设置为0 || 255


常见图像二值化(Binarisation)方法
- 全局阈值法
手动选定灰度值(阀值)将图像中低于某个阈值的像素设置为黑色,而其他的设置为白色。
缺点:直接阈值化操作是一种一刀切的方式,对于亮度分布差异较大的图像,常常无法找到一个合适的阈值。
- 自适应阈值
根据自适应阈值算法选择灰度值(阀值),阀值根据算法改变而改变
1)局部邻域块的平均值;ADAPTIVE_THRESHOLD_MEAN_C
2)局部邻域块的高斯加权和:ADAPTIVE_THRESHOLD_GAUSSIAN_C
3)根据双峰法、P 参数法、迭代法、OTSU 等算法计算阀值
- 根据图像色系范围
根据图像色系排序,将排序好的前几个色系最为阀值
降噪(Noise Removal)、去除干扰线
中值滤波
用像素点邻域灰度值的中值来代替该像素点的灰度值,让周围的像素值接近真实的值从而消除孤立的噪声点
高斯滤波
高斯滤波是一种线性平滑滤波,适用于消除高斯噪声。
高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。
高斯曲线越平滑。去噪能力越强,图像越模糊有效连接点
根据噪点周围的 4 个正向点、 据噪点周围的 8 个点的数目去除噪点
Tesseract
Tesseract(OCR)Optical character recognition 光学字符识别引擎(指对文本资料进行扫描,然后对图像文件进行分析处理,获取文字和版面信息的过程),
是 Google 发布的一款 OCR 开源库,它支持多个变成语言环境,以及运行环境。
tesseract --list-langs
jTessEditorBox
准备训练文本
meger tiff
生成 box 文档
tesseract -l yy -psm 7 code.yy.tif code.yy batch.nochop makebox
较正 box 文档
生成 unicharset 文档
tesseract code.yy.tif code.yy nobatch box.train unicharset_extractor code.yy.box
生成字典数据
1
2
3
4vi font_properties
yy 0 0 0 0 0
mftraining -F font_properties -U unicharset code.yy.tr
cntraining code.yy.tr合并数据文档
1
2
3
4
5
6rename normproto yy.normproto
rename inttemp yy.inttemp
rename pffmtable yy.pffmtable
rename shapetable yy.shapetable
rename unicharset yy.unicharset
combine_tessdata yy.