iPhoneアプリの画像OCRにtesseractを使用しています。実行中にすべてのOCRプロセスを停止したい。
これが私のコードです:
.hファイル内:
dispatch_queue_t main;
tesseract::TessBaseAPI *tesseract;
uint32_t *pixels;
.mファイル内:
- (void)processOcrAt:(UIImage *)image
{
[self setTesseractImage:image];
//char* utf8Text = tesseract->GetUTF8Text();
//[self performSelector:@selector(ocrProcessingFinished:) withObject:[NSString stringWithUTF8String:utf8Text]];
//dispatch_queue_t queue = dispatch_queue_create("com.awesome", 0);
main = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(main, ^{
tesseract->Recognize(NULL);
char* utf8Text = tesseract->GetUTF8Text();
[self performSelectorOnMainThread:@selector(ocrProcessingFinished:)
withObject:[NSString stringWithUTF8String:utf8Text]
waitUntilDone:NO];
delete [] utf8Text;
});
}
-(IBAction)backPressed:(id)sender{
dispatch_release(main);
tesseract->Clear();
//tesseract->End();
delete tesseract;
tesseract = nil;
delete pixels;
[self.navigationController popViewControllerAnimated:YES];
}
OCRの実行中に戻るボタンをタップすると、クラッシュします。ocrがまだ実行されているためです。どうすれば止められますか?正八胞体で方法を見つけることができませんでした。