Сбой распознавания текста из-за особенностей шрифта - PullRequest
1 голос
/ 30 марта 2012

У меня есть библиотека, которая содержит все символы шрифта (в моем случае Arial). Например:

enter image description here

Я использую эту библиотеку для распознавания текста с изображения.

Проблема в том, что при попытке распознавания таких символов, как "j", "/", "t" - символы могут перекрывать друг друга! Так что распознавание теперь невозможно, поскольку символы не совпадают изображения шаблона (различаются до 3 пикселей).

enter image description here

Как мне справиться с этой проблемой? Есть ли лучший способ сравнить изображения? (C #, приложение WinForms)

Я использую этот метод для сравнения:

unsafe public static bool CompareMemCmp(Bitmap b1, Bitmap b2)
    {
        if ((b1 == null) != (b2 == null)) return false;
        if (b1.Size != b2.Size) return false;

        var bd1 = b1.LockBits(new Rectangle(new System.Drawing.Point(0, 0), b1.Size), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);
        var bd2 = b2.LockBits(new Rectangle(new System.Drawing.Point(0, 0), b2.Size), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);

        try
        {
            IntPtr bd1scan0 = bd1.Scan0;
            IntPtr bd2scan0 = bd2.Scan0;

            int stride = bd1.Stride;
            int len = stride * b1.Height;

            return memcmp(bd1scan0, bd2scan0, len) == 0;
        }
        finally
        {
            b1.UnlockBits(bd1);
            b2.UnlockBits(bd2);
        }
    }

Это очень быстро и надежно .. но вы не можете получить результат, если выполнено условие сверху .. к сожалению.

Ответы [ 2 ]

1 голос
/ 30 марта 2012

Вы можете сделать эти пары символов (хотя их может быть неоправданно много ..) "символы", т.е.комбинация "-j" будет распознаваться как символ "-j" ..

1 голос
/ 30 марта 2012

Вы можете вернуть счет для каждого персонажа. Вероятность того, что персонаж является изображенным персонажем.

Вы можете увеличить счет, если центральные пиксели совпадают с краевыми пикселями, чтобы вы могли лучше угадывать.

...