【问题标题】:Tesseract hOCR iOS正方体 hOCR iOS
【发布时间】:2014-02-04 02:20:47
【问题描述】:

我正在学习如何使用 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 的任何见解。

【问题讨论】:

    标签: ios objective-c tesseract hocr


    【解决方案1】:

    如果您按照以下步骤操作,您将获得一个 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];
    

    希望您知道剩余的解析过程。

    【讨论】:

    • hOCR 是否返回 XML 字符串?还是 HTML?
    • 它的 HTML,但是当你调用上面提到的 getHOCRText 方法时,你会得到一个 NSString,它可以转换为 NSData 并可以使用 NSXMLParser 解析。如果你 NSLog 那个 NSString 你可以看到它类似于 xml。所以你可以把它当作 xml 响应,并可以使用 NSXMLParser 解析它。
    • 从 HTML 我需要卡片上的文本块,我可以通过解析从 HTML 中获取块吗?我是 Tesseract 和解析的新手。感谢您的回答。
    • 如果是这样,我该怎么做?
    • 看看这里codeproject.com/Articles/248883/…。这方面有很多教程。只需搜索即可。
    猜你喜欢
    • 2013-02-08
    • 1970-01-01
    • 1970-01-01
    • 2022-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-12
    • 2016-11-16
    相关资源
    最近更新 更多