我正在尝试训练tesseract从燃气表的真实图像中识别数字。
我用于训练的图像是用相机制作的,因此有许多问题:图像分辨率低,图像模糊,由于过度曝光,反射,阴影等造成的照明不良或对比度低……
为了进行训练,我创建了一个大图像,其中包含燃气表图像捕获的一系列数字,并手动编辑文件框以创建.tr文件。结果是,tesseract只能识别更清晰和更锐利的图像的数字,而不能捕获模糊图像的数字。
发布于 2013-11-05 19:52:38
据我所知,你需要OpenCV来识别数字所在的方框,但OpenCV不是光学字符识别的上帝。找到box后,只需裁剪该部分,进行图像处理,然后将其交给tesseract进行OCR。
因为我不知道如何用OpenCV编程,所以我需要OpenCV方面的帮助。
这里有几个真实世界的例子。
OCR是原始图像(裁剪后的功率表numbers)



发布于 2012-08-20 02:30:42
我会先尝试这个简单的ImageMagick命令:
convert \
original.jpg \
-threshold 50% \
result.jpg(使用50%参数--尝试使用更小和更高的值...)
对于每个颜色通道,阈值处理基本上只留下2个值,0或最大值。低于阈值的值被设置为0,高于阈值的值被设置为255 (如果以16位深度工作,则为65535 )。
根据您的original.jpg,您可能会有一个光学字符识别功能,工作,非常高的对比度图像的结果。
发布于 2014-01-11 01:12:59
我建议你:
Boxa * tesseract::TessBaseAPI::GetConnectedComponents(Pixa** pixa) (它允许您找到每个字符的边界框)Pix* pimg = tess_api->GetThresholdedImage();
Here你能找到的例子很少
https://stackoverflow.com/questions/6733533
复制相似问题