我已经开始使用Tesseract包含字符识别的项目!我希望在字符识别后打开一个新的viewController(EditViewController),但无论我尝试过什么都失败了。
这是我的代码:
-(void)recognizeImageWithTesseract:(UIImage *)image{
GPUImageAdaptiveThresholdFilter *stillImageFilter = [[GPUImageAdaptiveThresholdFilter alloc] init];
stillImageFilter.blurRadiusInPixels = 4.0;
UIImage *bwImage = [stillImageFilter imageByFilteringImage:image];
// Animate a progress activity indicator
[self.activityIndicator startAnimating];
self.imageToRecognize.image = bwImage;
G8RecognitionOperation *operation = [[G8RecognitionOperation alloc] init];
operation.tesseract.language = @"eng";
operation.tesseract.engineMode = G8OCREngineModeTesseractCubeCombined;
operation.tesseract.pageSegmentationMode = G8PageSegmentationModeAutoOnly;
operation.delegate = self;
operation.recognitionCompleteBlock = ^(G8Tesseract *tesseract) {
NSString *recognizedText = tesseract.recognizedText;
NSLog(@"%@", recognizedText);
EditViewController *viewControllerB = [[EditViewController alloc] initWithNibName:@"UploadViwController" bundle: nil];
viewControllerB.ocrText = recognizedText;
[self.navigationController pushViewController:viewControllerB animated:YES];
};
[self.operationQueue addOperation:operation];
}
答案 0 :(得分:-1)
您可以尝试的一件事是为viewControllerB初始化导航控制器。请参阅下面的代码。
EditViewController *viewControllerB = [[EditViewController alloc] initWithNibName:@"UploadViwController" bundle: nil];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:self];
viewControllerB.ocrText = recognizedText;
[navigationController pushViewController:viewControllerB animated:YES];