首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift 3 Tesseract OCR识别返回垃圾结果

Swift 3 Tesseract OCR识别返回垃圾结果
EN

Stack Overflow用户
提问于 2017-08-16 08:23:59
回答 1查看 584关注 0票数 0

感谢许多与Tesseract光学字符识别相关的帖子,specifically this one,我现在正在将Tesseract集成到一个应用程序中,专门用于食品杂货收据的光学识别。然而,我得到了垃圾结果,我不知道为什么。我已经三次检查了tessdata语言文件,它们是3.04/3.05版本的英语立方体数据文件。

下面是我的代码的核心:

代码语言:javascript
复制
            if let tesserect = G8Tesseract(language: "eng") {

            self.receiptPhoto.image = UIImage(named: "TradersReceipt")?.g8_blackAndWhite()
            self.receiptPhoto.image = self.receiptPhoto.image?.toGrayScale()
            self.receiptPhoto.image = self.receiptPhoto.image?.binarise()
            self.receiptPhoto.image = self.receiptPhoto.image?.scaleImage()

            // OCR the receipt in receiptPhoto
            tesserect.delegate = self as G8TesseractDelegate
            tesserect.engineMode = .tesseractCubeCombined
            tesserect.pageSegmentationMode = .singleBlock
            tesserect.image = self.receiptPhoto.image
            tesserect.recognize()

            // Update the UITextField in the destination VC being segued to
            textOfReceipt.text = tesserect.recognizedText

        }

请注意,函数toGrayScale等来自本文第一句中链接的SO post。可以看到,我刚刚硬编码了Trader Joe的收据用于测试,收据在这里:

Trader Joe's Receipt

但我的问题是,显示的UITextView (textOfReceipt.text)是垃圾:

Garbage Results from tesseract.recognize

我觉得我错过了一些简单的东西。感谢任何人的帮助。

EN

回答 1

Stack Overflow用户

发布于 2017-08-29 07:26:57

事实证明代码是很好的。Tesseract只是不能很好地处理Trader Joe的收据,可能是因为Tesseract不能很好地处理Trader Joe的字体使用和/或与收据上的一些特殊字符混淆。其他收据做得更好,尽管在OCR收据时结果的质量有很大的差异。如果我对普通文本进行OCR,例如从一本书中,结果会很棒。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45703362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档