paddleocr-js
Version:
JavaScript wrapper for PaddleOCR, providing OCR capabilities in browser and Node.js
98 lines (97 loc) • 2.45 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
export interface Point {
x: number;
y: number;
}
export interface TextBox {
id: number;
box: Point[];
score: number;
}
export interface TextLine {
text: string;
score: number;
box?: TextBox;
}
export interface OCRResult {
textDetection: TextBox[];
textRecognition: TextLine[];
duration: {
preprocess: number;
detection: number;
recognition: number;
total: number;
};
}
export interface TableResult {
structure: any;
cells: {
box: Point[];
text: string;
rowspan: number;
colspan: number;
row: number;
col: number;
}[];
html: string;
}
export interface LayoutResult {
regions: {
type: string;
box: Point[];
score: number;
content?: string | TableResult;
}[];
}
export interface PaddleOCROptions {
modelPath?: string;
useTensorflow?: boolean;
useONNX?: boolean;
useWasm?: boolean;
enableDetection?: boolean;
detectionModel?: "DB" | "DB++" | "East" | string;
enableRecognition?: boolean;
recognitionModel?: "CRNN" | "SVTR" | string;
language?: string;
enableTable?: boolean;
enableLayout?: boolean;
enableFormula?: boolean;
maxSideLen?: number;
threshold?: number;
batchSize?: number;
enableGPU?: boolean;
onProgress?: (progress: number, stage: string) => void;
}
export interface ProcessOptions {
mode?: "text" | "table" | "layout" | "all";
returnOriginalImage?: boolean;
useAngle?: boolean;
useDeskew?: boolean;
}
export type ImageSource = HTMLImageElement | HTMLCanvasElement | ImageData | string | Uint8Array | Buffer;
/**
* WorkerHelper的静态类型
*/
export interface WorkerHelperConstructor {
new (options: PaddleOCROptions, workerUrl?: string): any;
}
/**
* ResultVisualizer的静态类型
*/
export interface ResultVisualizerConstructor {
new (container: string | HTMLElement, options?: any): any;
}
/**
* LightVisualizer的静态类型
*/
export interface LightVisualizerConstructor {
new (container: string | HTMLElement, options?: any): any;
}
export interface PaddleOCRStatic {
new (options?: PaddleOCROptions): any;
version: string;
WorkerHelper: WorkerHelperConstructor;
ResultVisualizer: ResultVisualizerConstructor;
LightVisualizer: LightVisualizerConstructor;
}