Как определить направление текста или страницы с тессерактом - PullRequest
0 голосов
/ 03 июля 2019

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

Очевидно, мне нужна какая-то библиотека OCR, поэтому я пошел с Tesseract.Обнаружение пустых страниц было достаточно простым.Но свойство Orientation, похоже, не работает вообще ( EDIT: , поскольку не работает, я имею в виду, что оно всегда говорит «PageUp»).Но из того, что я собрал до сих пор, это должно дать мне подсказку о том, перевернута ли моя страница или нет.Я что-то пропустил?Может быть, что-то, что должно быть включено в папку tessdata для этого?

Я также попробовал подход тестирования GetMeanConfidence, перевернул изображение, а затем сравнил MeanConfidences, потому что теоретически страница, которая не была перевернута, должна быть легче читаемой.Но разница настолько минимальна, что я не думаю, что это надежно.

И я переключил атрибут языка TesseractEngine.Я пробовал "eng", "deu" и "osd".Все с одинаковым результатом.

Bitmap image = new Bitmap(filepath);
var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);
path = Path.Combine(path, "tessdata");
path = path.Replace("file:\\", "");
var engine = new TesseractEngine(path, "osd", EngineMode.TesseractOnly);
using (var img = PixConverter.ToPix(image))
{
  using (var page = engine.Process(img, PageSegMode.AutoOsd))
  {
    var pageIterator = page.AnalyseLayout();
    pageIterator.Begin();
    var pageProperties = pageIterator.GetProperties();
    Console.WriteLine(pageProperties.Orientation.ToString() +" "+  
    pageProperties.TextLineOrder + " " + pageProperties.DeskewAngle + " " + 
    pageProperties.WritingDirection);
    Console.WriteLine(page.GetMeanConfidence());
   }
}

Я ожидаю вывод, который сообщит мне, если страница перевернута.Так что я знаю, нужно ли это вращать или нет.Производительность не имеет значения!Я также открыт для разных подходов и библиотек (если они бесплатны).

...