PDFium Delphi Component Docs

DetectPageSkew メソッド

コンポーネント: TPdf  ·  ユニット: PDFium
スキャン済みページによくある、現在のページの傾きを測定します

構文

function DetectPageSkew(out Report: TPdfSkewReport): Boolean;

ReportTPdfSkewReport. Receives SkewAngle in degrees (positive means clockwise tilt), Confidence from 0 to 1, the SampleWidth and SampleHeight used for detection, a Succeeded flag, and an ErrorMessage.
ResultBoolean. True when an angle was measured, matching Report.Succeeded.

説明

ページを低解像度でレンダリングし、テキストピクセルを候補回転角に投影して傾き角を検出します。投影が最も鋭い線構造を生む角度が採用されます。精度は約 0.1 度です

Confidence はページが提供したテキスト行の証拠量を反映します。テキストが流れるページは高得点、1 行だけまたは行がないページは低得点となり、低い得点は「傾きなし」ではなく「信頼できる答えなし」として扱うべきです

検出は測定のみです。ページを真っ直ぐにするには、反転した角度を回転マトリックスに与えて TransformPageContent で適用するか、出力のみを補正する場合は RenderPageWithMatrix でレンダリングします

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

関連項目

TransformPageContent, RenderPageWithMatrix, ApplyOcrSearchLayer, PageRotation