我正在尝试使用tesseract OCR扫描名片,我所做的就是将图像发送进去,没有进行任何预处理,这是我正在使用的代码。
Tesseract* tesseract = [[Tesseract alloc] initWithLanguage:@"eng+ita"];
tesseract.delegate = self;
[tesseract setVariableValue:@"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@.-()" forKey:@"tessedit_char_whitelist"];
[tesseract setImage:[UIImage imageNamed:@"card.jpg"]]; //image to check
[tesseract recognize];
NSLog(@"Here is the text %@", [tesseract recognizedText]);
如您所见,准确度不是100%,但这并不是我关心的问题,我认为可以通过一些简单的预处理来解决。然而,如果您注意到它将底部两个文本块混合在一起,就会分割地址,并可能分割其他卡上的信息。
我怎样才能使用Leptonica(或其他可能是OpenCV)来以某种方式对文本进行分组?可能单独向Tesseract发送图像上的文本区域进行扫描? 我已经卡在这个问题上很长时间了,欢迎任何可能的解决方案!