Я пытаюсь получить числа MICR из изображения, используя Тессеракт OCR. У меня есть mcr.traineddata, который я получаю по ссылке ниже. Я помещаю его в папку tessdata и удаляю все о eng и других языках.
https://github.com/BigPino67/Tesseract-MICR-OCR
Я объявляю Тессеракт и обрабатываю изображение с кодом ниже
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: