我正在开发一款iPhone应用,用于识别ISBN号码(ISBN: 978-83-7380-900-0)。我使用了tesseract进行识别,但效果并不好。我看到其他使用相同引擎的应用程序效果更好。
为了限制字符,我使用了以下配置行: tess->SetVariable("tessedit_char_whitelist", "SN:0123456789X-"); 因此所有"I"都被转换为"1",而"B"则被转换为8。这样做可以避免在不重要的字母上出错。 之后,我使用正则表达式找到正确的识别文本部分。
我还裁剪图像,使tesseract仅识别isbn可见的部分(我在相机叠加层上放置了彩色矩形,用户必须将代码放置在正确的位置)。 我还将图像调整为1000px宽度(也尝试过其他尺寸)
当光线不完美时,它很难正确识别,但在光线良好的情况下工作得相当好。
ISBN号码的最后一位是控制和。
有什么办法可以让它工作得更好吗? 有没有办法告诉tesserect仅在给定的正则表达式中识别文本? 也许我应该先处理图像?
以下是未正确识别的示例图像:
http://img412.imageshack.us/i/img0367si.jpg/
http://img264.imageshack.us/i/img0361d.jpg/