ios - Tesseract iOS - 无法识别文本
问题描述
我正在尝试将 tesseract OCR 库集成到我的react native
项目中以进行文本识别。我已tesseract iOS
成功安装并集成它。但是每当我尝试识别文本时,都会出现以下错误:
请在尝试识别之前调用 SetImage。2018-06-27 15:16:10.417392+0500 MyApp[528:165975] 没有可识别的文本。检查 -[Tesseract setImage:] 是否传递了大于 0x0 的图像。在使用参数( “file:///var/mobile/Containers/Data/Application/630539FD-AFDA-441F-8AB8-98CAA0867CE1/Library/Caches/Camera/F03909D4-4B7C-4A07-88BA-028E5A175156.jpg”)
我正在使用捕获图片react-native-camera
并将 URI 传递给readData
方法。使用的训练数据来自这个repo
这是我的代码:
#import "RNTextRecognition.h"
#import <React/RCTLog.h>
@implementation RNTextRecognition
RCT_EXPORT_MODULE();
RCT_EXPORT_METHOD(readData:(NSString *)uri)
{
RCTLogInfo(@"URI %@", uri);
[self initTesseract:uri];
}
- (void) initTesseract: (NSString *)uri {
G8Tesseract *tesseract = [[G8Tesseract alloc] initWithLanguage:@"eng"];
tesseract.delegate = self;
NSURL *url = [NSURL URLWithString:uri];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *img = [[UIImage alloc] initWithData:data];
[tesseract setImage:img];
[tesseract recognize];
NSLog(@"%@", [tesseract recognizedText]);
}
- (void)progressImageRecognitionForTesseract:(G8Tesseract *)tesseract {
NSLog(@"progress: %lu", (unsigned long)tesseract.progress);
}
- (BOOL)shouldCancelImageRecognitionForTesseract:(G8Tesseract *)tesseract {
return NO;
}
-(UIImage *)preprocessedImageForTesseract:(G8Tesseract *)tesseract sourceImage:(UIImage *)sourceImage {
NSString* text = tesseract.recognizedText;
NSLog(@"%@", [NSString stringWithString:text]);
return sourceImage;
}
@end
编辑:经过调试发现错误出现在G8Tesseract.mmsetImage
方法的下面一行:
UIImage *thresholdedImage = [self.delegate preprocessedImageForTesseract:self sourceImage:image];
解决方案
推荐阅读
- javascript - 为什么我正在加载的图像丢失?
- python - python中的矩阵乘法给出错误,我该如何克服?
- php - 提交表单总是复制 ACF 子字段的第一行
- laravel - 在 laravel 的 find_in_set 子句中使用子查询构建查询
- android - 结合模型类类型 Firebase Android 的两个数组
- docker - Docker PGAdmin 容器永久配置
- snowflake-cloud-data-platform - 如何在雪花中只返回一个正则表达式匹配组?
- tsql - 将 int 数据类型更改为小时
- javascript - FullCalendar 显示在 localhost 但不在服务器上
- c# - Sage 50 v25 ODBC 错误 - 驱动程序返回无效(或未能返回)SQL_DRIVER_ODBC_VER:25.0