OCR。使用tesseract识别里程表

时间:2016-04-17 11:58:33

标签: android ios ocr tesseract

我想识别里程表的数字。我找到了iOS的这个教程。 https://www.raywenderlich.com/93276/implementing-tesseract-ocr-ios

我的tesseract属性:

func performImageRecognition(image: UIImage) {

    let tesseract = G8Tesseract()
    tesseract.language = "eng"
    tesseract.engineMode = .TesseractCubeCombined
    tesseract.pageSegmentationMode = .Auto
    tesseract.maximumRecognitionTime = 60.0
    tesseract.setVariableValue("0123456789", forKey: "tessedit_char_whitelist")
    tesseract.image = image.g8_blackAndWhite()
    tesseract.recognize()
  }

该应用成功识别标准文字。 但应用程序无法识别里程表的数字。 可以使用tesseract来测量里程表的扫描效果吗?

我试过这张图片: enter image description here enter image description here enter image description here

2 个答案:

答案 0 :(得分:3)

如果我是你,我会尝试从里程表图像中删除数字,拉直它们,做阈值(手动一切),看看tesseract是否正确扫描处理过的图像,结果有多清楚。 如果 正确扫描,您应该使用algorythm以编程方式处理图像(使用openCV可能是最好的)。如果它,你应该尝试训练你的tesseract这些数字,在里程表上常见,然后看看tesseract如何工作(我没有尝试过个人训练,也许this会有所帮助)。

enter image description here

你的图片应该是这样的,但事实是,例如,即使你将tesseract字符白名单减少到" 0123456789",最后确定的数字也不会被识别为1。将被扫描为1和1(因为两部分)。如果您想使用tesseract,我认为在您的情况下,tesseract培训是强制性的。顺便说一句,前两张图片的情况应该更好。

答案 1 :(得分:2)