PDFium Delphi Component Docs

DetectPageSkew Methode

Komponente: TPdf  ·  Unit: PDFium
Misst, wie stark die aktuelle Seite geneigt ist, wie es bei gescannten Seiten üblich ist.

Syntax

function DetectPageSkew(out Report: TPdfSkewReport): Boolean;

ReportTPdfSkewReport. Empfängt SkewAngle in Grad (positiv bedeutet Neigung im Uhrzeigersinn), Confidence von 0 bis 1, die für die Erkennung verwendeten SampleWidth und SampleHeight, ein Succeeded-Flag und eine ErrorMessage.
ResultBoolean. True, wenn ein Winkel gemessen wurde, entsprechend Report.Succeeded.

Description

Erkennt den Neigungswinkel, indem die Seite mit niedriger Auflösung gerendert und die Textpixel auf Kandidaten-Rotationswinkel projiziert werden; der Winkel, dessen Projektion die schärfste Linienstruktur ergibt, gewinnt. Die Genauigkeit beträgt etwa 0,1 Grad

Confidence spiegelt wider, wie viel Textzeilen-Evidenz die Seite bot. Eine Seite mit Fließtext erzielt einen hohen Wert; eine Seite mit nur einer Zeile oder ohne Text erzielt einen niedrigen Wert, und ein niedriger Wert sollte als "keine verlässliche Antwort" und nicht als "keine Neigung" behandelt werden

Die Erkennung misst nur. Um die Seite zu begradigen, geben Sie den negierten Winkel in eine Rotationsmatrix ein und wenden ihn mit TransformPageContent an, oder rendern Sie über RenderPageWithMatrix, wenn nur die Ausgabe korrigiert werden muss

Example

var Report: TPdfSkewReport;
if Pdf.DetectPageSkew(Report) and (Report.Confidence > 0.5) then
  ShowMessageFmt('Tilted by %.2f degrees', [Report.SkewAngle]);

See Also

TransformPageContent, RenderPageWithMatrix, ApplyOcrSearchLayer, PageRotation