Tessnet2 (Tesseract) не возвращает правильные результаты - способы улучшить вывод

Я использую tessnet2 (tesseract-ocr) в C# на следующем изображении:

Образец текстового изображения

Это мой код:

var image = new Bitmap(@"D:\anuj\a2.jpg");
ocr.Init(@"D:\anuj\OCRTest\tessdata", "eng", false);
var result = ocr.DoOCR(image, Rectangle.Empty);
foreach (Word word in result)
    Console.Write("{0} ", word.Text);                    
Console.ReadLine();

который дает вывод: Icurumcretz j

Какие способы получения правильного результирующего текста в качестве образца изображения довольно ясны и имеют хорошее разрешение и все еще не дают правильный текст. Какие параметры нужно определить, чтобы получить правильный результат. Ответьте, пожалуйста.

1 ответ

Решение

Вы должны попробовать и немного обработать изображение, чтобы улучшить вывод тессеракта. Библиотеки OpenCV(EmguCV для C#, я думаю) могут помочь вам в некоторых из этих методов обработки изображений. Я использовал маленькую медиану размытия на изображении, чтобы уменьшить шум, и сделал из него двоичное изображение.

Сегментированное изображение

Тестирование этого изображения с помощью tesseract дает мне следующий вывод: laurumoretz и немного тарабарщины на следующей строке, потому что я не удалял маленькие капли (символы с наклейки с номерами телефонов). Так что это по одному, но я не использовал исправление, чтобы текст выглядел полностью линейным.

Я надеюсь, что это даст вам представление о том, как улучшить вывод tesseract-ocr.

Другие вопросы по тегам