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

我能够编译已经在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环境variables设置为您的“tessdata”目录的父目录。 加载语言“ara”失败

任何帮助将不胜感激。

这是因为文档文件夹没有语言文件。 将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]; } } 

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

正方体

在这里你可以

  -setLanguage: - (BOOL)setLanguage:(NSString *)language 

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

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

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