您好,我正在尝试使用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。
可能会工作。