带有MICR数据的Tesseract OCR iOS在configEngine上返回异常

时间:2018-09-05 12:25:23

标签: ios swift tesseract

我正在尝试使用Tesseract OCR从图像中获取MICR编号。我有mcr.traineddata,我从下面的链接中获取。我将其放在tessdata文件夹中,并删除了有关eng和其他语言的所有内容。

https://github.com/BigPino67/Tesseract-MICR-OCR

我要用以下代码声明Tesseract和过程图像

if let tesseract = G8Tesseract(language: "mcr") {
 tesseract.engineMode = .tesseractCubeCombined
 tesseract.pageSegmentationMode = .auto
 tesseract.image = image.g8_blackAndWhite()
 tesseract.recognize()
 textView.text = tesseract.recognizedText
}

但是,它给出了

  

other_case

G8Tesseract.mm框架内的TesseractOCRiOS文件出现

错误。下面是该函数,它在int returnCode = _......行上给出错误。我想这是关于成为UTF8String的问题,因为我正在尝试OCR MICR。但是,我不知道如何解决。

- (BOOL)configEngine
{
    GenericVector<STRING> tessKeys;
    for( NSString *key in self.configDictionary.allKeys ){
        tessKeys.push_back(STRING(key.UTF8String));
    }

    GenericVector<STRING> tessValues;
    for( NSString *val in self.configDictionary.allValues ){
        tessValues.push_back(STRING(val.UTF8String));
    }

    int count = (int)self.configFileNames.count;
    const char **configs = count ? (const char **)malloc(sizeof(const char *) * count) : NULL;
    for (int i = 0; i < count; i++) {
        configs[i] = ((NSString*)self.configFileNames[i]).UTF8String;
    }
    int returnCode = _tesseract->Init(self.absoluteDataPath.UTF8String, self.language.UTF8String,
                                      (tesseract::OcrEngineMode)self.engineMode,
                                      (char **)configs, count,
                                      &tessKeys, &tessValues,
                                      false);
    if (configs != nullptr) {
        free(configs);
    }
    return returnCode == 0;
}

我尝试进行OCR的示例:

image

0 个答案:

没有答案