ConfigureTesseractOCR

OCR, конфигурация

Описание

Создаёт принадлежащего экземпляру провайдера Tesseract и назначает его в OnOCRPage, благодаря чему методы OCR страницы и документа работают без колбэка приложения

Синтаксис

Delphi

Function TPDFlib.ConfigureTesseractOCR(Const Executable,
  TessDataDirectory: WideString; DetectOrientation: Boolean= False;
  MinOrientationConfidence: Double= 15; TimeoutMS: Integer= 120000): Boolean;

ActiveX

Function PDFlib::ConfigureTesseractOCR(Executable As String,
  TessDataDirectory As String, DetectOrientation As Long,
  MinOrientationConfidence As Double, TimeoutMS As Long) As Long

DLL

int DLConfigureTesseractOCR(int InstanceID, const wchar_t* Executable,
  const wchar_t* TessDataDirectory, int DetectOrientation,
  double MinOrientationConfidence, int TimeoutMS);
int DLConfigureTesseractOCRA(int InstanceID, const char* Executable,
  const char* TessDataDirectory, int DetectOrientation,
  double MinOrientationConfidence, int TimeoutMS);

Параметры

ExecutableПуть к существующему исполняемому файлу Tesseract
TessDataDirectoryКаталог обученных данных или пустая строка, чтобы движок использовал свой обычный поиск данных
DetectOrientationПо умолчанию False; true запускает OSD перед распознаванием и явно исправляет сообщённый поворот на 0, 90, 180 или 270 градусов по часовой стрелке
MinOrientationConfidenceКонечный неотрицательный балл уверенности OSD Tesseract, по умолчанию 15; этот балл не связан с порогом уверенности слова от 0 до 1
TimeoutMSПоложительный тайм-аут в миллисекундах для каждого процесса движка, по умолчанию 120000; страница с определением ориентации может выполнить отдельные процессы OSD и распознавания

Возвращаемые значения

Delphi возвращает true, когда конфигурация принята; DLL и ActiveX возвращают 1 при успехе и 0 при недопустимой конфигурации

Примечания

Движок опционален и поставляется приложением; конфигурация не устанавливает исполняемый файл, не скачивает модели и не меняет пользовательскую настройку Tesseract

Путь к исполняемому файлу и опциональный путь к каталогу данных проверяются при настройке; наличие моделей и реальное выполнение движка проверяются при распознавании страницы

Запрошенному языку нужен его файл обученных данных, например eng.traineddata; определению ориентации также нужен osd.traineddata

Адаптер Windows запускает исполняемый файл напрямую, без оболочки и видимой консоли, использует приватные временные файлы, соблюдает лимиты времени и вывода и разбирает иерархию hOCR и проверенные базовые линии строк

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

Проверенная коррекция поворачивает поддерживаемые нечересстрочные 8-битные пиксели PNG на четверть оборота без интерполяции, распознаёт выпрямленное изображение, а затем отображает рамки слов и конечные точки базовых линий обратно в координаты исходного изображения

Отображённая базовая линия уже несёт направление текста и второй раз угол ориентации не получает

Недопустимая перенастройка удерживает существующего провайдера; принятая перенастройка заменяет предыдущего принадлежащего библиотеке провайдера

Назначенный позже колбэк приложения остаётся принадлежащим приложению и сохраняется при ClearTesseractOCR и уничтожении экземпляра

Пример

if not PDF.ConfigureTesseractOCR('C:\Tools\Tesseract\tesseract.exe',
  'C:\OCR\tessdata', True, 15, 120000) then
  raise Exception.Create(PDF.LastOCRError);
Processed := PDF.OCRDocumentEx('', 300, 'eng', 'Arial', 0.5,
  PDF_OCR_SKIP_EXISTING_TEXT or PDF_OCR_REPLACE_OWNED_LAYER);
ReportJSON := PDF.GetOCRDiagnosticsJSON;

См. также

ClearTesseractOCR, OCRPageEx, OCRDocumentEx, GetOCRDiagnosticsJSON, OnOCRPage