我正在尝试使用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的示例: