AnalyzePageSkewJSON

图像处理、文档检查、渲染

描述

测量校正扫描 PDF 页面中水平文本和线条结构所需的旋转,并返回不改变文档的确定性 JSON

语法

Delphi

Function TPDFlib.AnalyzePageSkewJSON(Page: Integer; DPI: Double= 0;
  MaxAngle: Double= 0; AngleStep: Double= 0): WideString;

ActiveX

Function PDFlib::AnalyzePageSkewJSON(Page As Long, DPI As Double,
  MaxAngle As Double, AngleStep As Double) As String

DLL

const wchar_t* DLAnalyzePageSkewJSON(int InstanceID, int Page,
  double DPI, double MaxAngle, double AngleStep);
const char* DLAnalyzePageSkewJSONA(int InstanceID, int Page,
  double DPI, double MaxAngle, double AngleStep);

参数

Page从 1 开始的页码
DPIRenderScale 之前的分析分辨率为 24 至 1200,零表示选择 96 DPI
MaxAngle从 0.1 到 45 度的对称搜索范围;零选择 7 度
AngleStep从 0.01 到 MaxAngle 的粗略扫描步长;零选择 1 度,随后自动进行精细优化

返回值

返回包含 page、校正 angle、分数比 confidence、峰值 score、自动灰度 threshold、采样前景数量、采样步长、评估角度数、光栅尺寸和有效 DPI 的 JSON 字段

该角度是在 PDF 用户空间中应用的校正;正值逆时针旋转,负值顺时针旋转

验证、渲染或分析失败时返回空字符串

备注

实现会渲染一个受限的自上而下位图,必要时自动降低有效 DPI 以保持在四百万像素以内,计算自动亮度阈值,并通过从粗到细的角度搜索评估差分行轮廓

空白或近乎纯色的页面是置信度为零且无需校正的成功分析结果

该方法返回前会还原先前选定的页面

页面或搜索参数无效时 LastErrorCode 为 116,渲染或分析失败时为 520

另请参阅

DeskewPage、DeskewPageRange、ApplyOCRTextLayer