ConfigureTesseractOCR

OCR, configuração

Descrição

Cria um provider Tesseract próprio da instância e o atribui à OnOCRPage, tornando os métodos de OCR de página e de documento utilizáveis sem um callback da aplicação

Sintaxe

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);

Parâmetros

ExecutableO caminho para um executável Tesseract existente
TessDataDirectoryO diretório de trained data, ou uma string vazia para deixar o engine usar a busca de dados normal dele
DetectOrientationFalse por padrão; true executa OSD antes do reconhecimento e corrige explicitamente a rotação informada de 0, 90, 180 ou 270 graus no sentido horário
MinOrientationConfidenceUm score de confiança OSD do Tesseract finito e não negativo, padrão 15; esse score é distinto do limite de confiança de palavra de 0 a 1
TimeoutMSO timeout positivo em milissegundos para cada processo do engine, padrão 120000; uma página orientada pode executar processos separados de OSD e de reconhecimento

Valores retornados

Delphi retorna true quando a configuração é aceita; DLL e ActiveX retornam 1 para sucesso e 0 para uma configuração inválida

Observações

O engine é opcional e é fornecido pela aplicação; a configuração não instala um executável, não baixa modelos e não modifica a configuração do Tesseract do usuário

O caminho do executável e o caminho opcional do diretório de dados são verificados durante a configuração; a disponibilidade dos modelos e a execução real do engine são verificadas quando uma página é reconhecida

O idioma solicitado precisa do arquivo de trained data dele, como eng.traineddata; a detecção de orientação também precisa do osd.traineddata

O adaptador do Windows lança o executável diretamente, sem shell nem console visível, usa arquivos temporários privados, impõe limites de tempo e de saída, e faz o parse da hierarquia hOCR e de baselines de linha verificadas

A detecção de orientação começa desabilitada; quando habilitada, um resultado OSD ausente ou de baixa confiança falha explicitamente em vez de adivinhar uma direção

Uma correção verificada gira os pixels PNG de 8 bits não entrelaçados suportados em um quarto de volta, sem interpolação, reconhece a imagem em pé e depois mapeia as caixas de palavras e os endpoints de baseline de volta para as coordenadas da imagem original

A baseline mapeada já carrega a direção do texto e não recebe o ângulo de orientação uma segunda vez

Reconfiguração inválida preserva o provider existente; reconfiguração aceita substitui o provider próprio anterior

Um callback de aplicação atribuído depois continua sendo da aplicação e é preservado pela ClearTesseractOCR e pela destruição da instância

Exemplo

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;

Veja também

ClearTesseractOCR, OCRPageEx, OCRDocumentEx, GetOCRDiagnosticsJSON, OnOCRPage