Распознавание цифр с помощью Tesseract OCR и c # - PullRequest
0 голосов
/ 24 сентября 2019

Я использую Tesseract и C # для чтения цифр.Все хорошо работает, кроме числа "8".Тессеракт не может прочитать цифру «8».Вот изображение, которое я посылаю тессеракту:

enter image description here

И тессеракт читает «50005550055».это мой метод:

public string Process(Bitmap bitmap, MetaTraderObjects metaObjects, bool isNumber = false)
{
    try
    {
        var graphicLib = new GraphicLib();
        bitmap = graphicLib.PerformReadingTextEffects(bitmap.ToBytes(), metaObjects).ToBitmap();
        var result = "";
        var enginePath = Const.BaseAppPath + "\\tessdata";
        using (var engine = new TesseractEngine(enginePath, "eng", EngineMode.Default))
        {
            var ver = engine.Version;
            using (var img = Pix.LoadTiffFromMemory(graphicLib.ConvertBitMapToByteArray(bitmap.ToBytes())))
            {
                using (var page = engine.Process(img,(PageSegMode)8))
                {
                    var text = page.GetText();
                    result = TextReformer.Reform(text, isNumber);
                    MemoryStream ms = new MemoryStream(bitmap.ToBytes());
                    Image i = Image.FromStream(ms);
                }
            }
        }
        return result;
    }
    catch (Exception ex)
    {
        ExceptionLog.Handel(ex);
        return null;
    }
}

Как я могу сказать Тессеракту, что вертикальный стержень - это "8"?

1 Ответ

0 голосов
/ 24 сентября 2019

Я рекомендую вам использовать последнюю версию Tesseract.Может работать лучше.

Тессеракт 4.1.0

...