Tesseract hOCR iOS

时间:2014-02-04 02:20:48

标签: ios objective-c tesseract hocr

我正在学习如何使用Tesseract API,我对hOCR输出功能很感兴趣。目前我正在使用此代码扫描图像。

 Tesseract* tesseract = [[Tesseract alloc] initWithLanguage:@"eng"];
tesseract.delegate = self;
[tesseract setVariableValue:@"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@.-():" forKey:@"tessedit_char_whitelist"];
[tesseract setVariableValue:@"0" forKey:@"tessedit_create_hocr"];

UIImage *image = [UIImage imageNamed:@"card.jpg"];

CGFloat newWidth = 1200;
CGSize newSize = CGSizeMake(newWidth, newWidth);
image = [image resizedImage:newSize interpolationQuality:kCGInterpolationHigh];


[tesseract setImage:image]; //image to check
[tesseract recognize];

 NSLog(@"Here is the text %@", [tesseract recognizedText]);

一切正在编译中,但我想知道如何存储hOCR函数返回的.html。 我可以将它存储在变量中吗?生成后,我需要能够在程序中访问此文件。任何关于如何在iOS上使用hOCR的见解都值得赞赏。

1 个答案:

答案 0 :(得分:0)

如果按以下步骤操作,您将获得NSString。

- (NSString *)getHOCRText {
        char *boxtext = _tesseract->GetHOCRText(0);
        return [NSString stringWithUTF8String:boxtext];
}

稍后您可以将此NSString转换为NSData。

    NSData *xmlData = [xmlString dataUsingEncoding:NSASCIIStringEncoding];

这样您就可以使用NSXMLParser解析此数据

        NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:xmlData];

希望您了解剩余的解析程序。