Тессеракт hOCR iOS

Я изучаю, как использовать 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]);

Все компилируется нормально, но я хочу знать, как хранить.html, который возвращается функцией hOCR. Могу ли я сохранить его внутри переменной? Мне нужно иметь доступ к этому файлу в моей программе после того, как он был сгенерирован. Любое понимание того, как использовать hOCR на iOS, приветствуется.

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];

Надеюсь, вы в курсе оставшихся процедур разбора.

Другие вопросы по тегам