Tesseract iOS-无法识别文本

时间:2018-06-27 10:33:05

标签: ios objective-c react-native tesseract

我正在尝试将tesseract OCR库集成到我的react native项目中以进行文本识别。我已经安装了tesseract iOS并成功集成了它。但是每当我尝试识别文本时,都会出现以下错误:

  

在尝试识别之前请致电SetImage.2018-06-27   15:16:10.417392 + 0500 MyApp [528:165975]没有可识别的文本。检查一下   -[Tesseract setImage:]传递了大于0x0的图像。 2018-06-27 15:16:10.419 [致命] [tid:com.facebook.react.RNTextRecognitionQueue]   异常'***-[NSPlaceholderString initWithString:]:nil参数'   在目标RNTextRecognition上调用readData时抛出   参数(       “文件:///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.mm setImage方法的以下行:

UIImage *thresholdedImage = [self.delegate preprocessedImageForTesseract:self sourceImage:image];

0 个答案:

没有答案