您好,我正在尝试使用Tesseract OCR(iOS),但是每当我从拍摄的照片中选择图像或从本地照片中选择图像时,都会得到以下信息:


  警告:图片没有尺寸!
  
  尝试识别之前,请致电SetImage。2014-06-1420:44:07.613进行Math [431:60b]内部计算
  
  尝试识别之前,请致电SetImage。2014-06-1420:44:07.614做数学[431:60b]没有识别的文本。检查-[Tesseract setImage:]是否传递了大于0x0的图像。


我的方法“计算”如下所示:

- (void)calculate
{
Tesseract* tesseract = [[Tesseract alloc] initWithLanguage:@"eng+ita"];
tesseract.delegate = self;

[tesseract setVariableValue:@"abcdefghijklmnopqrstuvwxyz" forKey:@"tessedit_char_whitelist"];
[tesseract setImage:_image];
[tesseract recognize];

NSLog(@"%@", [tesseract recognizedText]);

tesseract = nil; //deallocate and free all memory

}


关于

[tesseract setImage:_image];


_image是我已开始的实例变量:

UIImage *_image;


在有人拍照或通过以下方式选择照片后被分配:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
self.imageView.image = chosenImage;

chosenImage = _image;

[picker dismissViewControllerAnimated:YES completion:NULL];

}


我是通过cocoapods下载的:https://github.com/gali8/Tesseract-OCR-iOS

我究竟做错了什么? _image是一个UIImage,这就是setImage所期望的!

最佳答案

使用_image = selectedImage而不是selectedImage = _image。

可能会工作。

10-08 03:43