Невозможно получить шрифт OCR Type3 после предварительной обработки изображения, обучение TesseractC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно получить шрифт OCR Type3 после предварительной обработки изображения, обучение Tesseract

Сообщение Anonymous »

Я пытаюсь снять определенную область страницы PDF в многостраничном документе (общее количество страниц варьируется от 600 до 10 000 страниц). Первоначально я получаю данные как файлы .pcl в партиях из 500 записей, которые затем я преобразую в PDF с использованием стороннего инструмента (попытка как с Winpcltopdf.exe, так и в пробной версии Lincpdf). В результате PDF используется шрифт Type3, который я не могу редактировать или преобразовать в что -то пригодное для использования. Это привело меня на путь использования Tesseract для ocr записей, так как визуально легко читать. I still had issues, so I tried to refine it by generating a .traineddata file following these instructions for the most similar font (Morocco-LT-Std-Regular.ttf), which didn't improve accuracy.
High-Level Order of Operations:

[*]Convert original PCL files to PDF
parse pdf для конкретных данных и назначьте его для записи объекта < /li>
< /ul>
Конкретная цель < /strong>: ocr Указанная область страницы PDF. Данные всегда появляются как record/pagecount .
Проблемы, встречающиеся
: ocr, неверно считывает числа, несмотря на обучение телсеракта на визуально -идентичное шрифт, а также различные типы предварительной обработки изображения, как описано здесь и здесь. Обертки, используемые в коде. Исходные данные (к сожалению) всегда будут в формате .pcl. Я пишу это в C#, но если есть сценарии, которые я могу запустить, которые помогут оптимизировать PDF перед тем, как запустить его через свой код, я открыт для предложений. Я также перепутал DPI, но это не помогло с точностью. Я играл с Tesseract Enginemode и SegmationMode, а также без изменения вывода. Я пробовал некоторые из шагов, упомянутых в этом посте, но опять же, ничего. Я не включил ни один из шагов предварительной обработки изображения, которые я упомянул в своем коде, потому что он не изменил вывод по сравнению с тем, что у меня есть ниже.

Код: Выделить всё

using (var rasterizer = new GhostscriptRasterizer())
using (var engine = new TesseractEngine(System.IO.Path.Combine(ResourceDir, "tessdata"), "eng", EngineMode.Default))
{

//coords for record area is based on the DPI of the rasterizer, so if you change the DPI, change the coords.
//600 dpi: Rect RecordArea = Rect.FromCoords(1135, 1100, 1900, 1300);
//1200 dpi: Rect RecordArea = Rect.FromCoords(2500, 2200, 4000, 2500);

Rect RecordArea = Rect.FromCoords(2500, 2200, 4000, 2500);

//only read these characters
engine.SetVariable("tessedit_char_whitelist", "01234567890/ ");

rasterizer.Open(file);

int currentPage = 1;
char[] charToTrim = {' ','\n'};

//loop thru all pages in pdf
while (currentPage  !String.IsNullOrWhiteSpace(e)).ToList();

//parse record number
tempRecord.RecordID = int.Parse(parsedText.First());
//get first page of record in pdf
tempRecord.FirstPage = currentPage;
//parse page count
tempRecord.PageCount = int.Parse(parsedText.Last());

//get last page of record in pdf
tempRecord.LastPage = tempRecord.FirstPage + tempRecord.PageCount - 1;

//increment based on page count so we only read the first page of each record, not the other statement pages
currentPage += tempRecord.PageCount;

parsedRecords.Add(tempRecord);
}
}
}
Я не могу предоставить PCL или PDF для справки, но вот скриншот области записи, которую я пытаюсь проанализировать:

wyly. Я чувствую, что упускаю очевидный шаг, но через неделю я не хочу попробовать.
>

Подробнее здесь: https://stackoverflow.com/questions/796 ... -tesseract
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»