在tesseract中添加任何训练过的数据文件并在IOS中使用

时间:2014-01-29 12:19:04

标签: ios tesseract

我能够编译ENGLISH版本,该版本已经在tesseract的样本中,但无法添加其他语言,如ara.traineddata。

我喜欢

 Tesseract* tesseract = [[Tesseract alloc] initWithDataPath:@"tessdata" language:@"ara+eng"];

它正在识别英语,但是对于阿拉来说它是错误的

Error opening data file /Users/harshthakur/Library/Application Support/iPhone Simulator/7.0/Applications/3B0A1909-E1BA-45E9-99A0-FDEAB2CFF4E0/Documents/tessdata/ara.traineddata

请确保将TESSDATA_PREFIX环境变量设置为“tessdata”目录的父目录。 加载语言'ara'

失败

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

这是因为文档文件夹没有语言文件。将ara.traineddata文件复制到您的包中,并使用此代码将您的语言文件保存在文档文件夹中。然后再试一次。它会正常工作。

- (void)storeLanguageFile {

        NSFileManager *fileManager = [NSFileManager defaultManager];
        NSString *docsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
        NSString *path = [docsDirectory stringByAppendingPathComponent:@"/tessdata/ara.traineddata"];
        if(![fileManager fileExistsAtPath:path])
        {
            NSData *data = [NSData dataWithContentsOfFile:[[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/tessdata/ara.traineddata"]];
            NSError *error;
            [[NSFileManager defaultManager] createDirectoryAtPath:[docsDirectory stringByAppendingPathComponent:@"/tessdata"] withIntermediateDirectories:YES attributes:nil error:&error];
            [data writeToFile:path atomically:YES];
        }
}

答案 1 :(得分:1)

看看这里,也许对你有帮助。

Tesseract

在这里你可以

   -setLanguage:

  - (BOOL)setLanguage:(NSString *)language

覆盖用-initWithDataPath定义的语言:language:。

答案 2 :(得分:1)

您可能还需要ara.cube.*个文件。

翻译语言的顺序可以提高识别率,一旦你运行它。