Tesseract默认情况下基本无法对LED数码管显示屏进行识别。但由于Tesseract具有样本机器学习训练的能力,因此可利用该技术实现Tesseract对LED数码管的OCR识别,这需要对图片进行预处理。
一、图像预处理
预处理步骤:
1)LED屏幕拍照,生成原始图像文件。
2)对图像灰度化处理。
3)对图像二值化处理。
4)对图像黑白反转。
5)按照实际需要的坐标和尺寸,对图像裁切去边,最终保留需要识别的部分。
以下是一个实际案例的处理过程。
拍照:
灰度化处理:
二值化处理:
黑白反转:
裁切去边后,按上下位置生成两张图片:
考虑小数点的影响,增加对0和5的识别,实际投入训练的是以下两张图片:
二、在jTessBoxEditorFX中进行样本训练
1、合并样本图片
执行train.bat启动jTessBoxEditorFX,选择菜单Tools->Merge TIFF执行图片合并,将上面两张图片文件合并为1个tif文件led.led_num.exp0.tif,关闭jTessBoxEditorFX。
合并后的文件命名格式有一定要求:
语法:[lang].[fontname].exp[num].tif
lang为语言名称,fontname为字体名称,num为序号,可自定义。
2、生成BOX文件
tesseract led.led_num.exp0.tif led.led_num.exp0 -l eng --psm 7 batch.nochop makebox
Tesseract Open Source OCR Engine vv4.0.0-beta.1.20180608 with Leptonica
Page 1
Page