UNPKG

id-scanner-lib

Version:

Browser-based ID card, QR code, and face recognition scanner with liveness detection

111 lines (110 loc) 2.99 kB
/** * @file OCR处理器 * @description 提供身份证OCR识别功能 * @module modules/id-card/ocr-processor */ /// <reference path="../../../../src/types/tesseract.d.ts" /> import { IDCardInfo } from './types'; import { LoggerMessage } from "tesseract.js"; import { Disposable } from "../../utils/resource-manager"; type LoggerFunction = ((message: string | LoggerMessage) => void) | undefined; /** * OCR处理器选项接口 */ export interface OCRProcessorOptions { language?: string; useWorker?: boolean; maxImageDimension?: number; timeout?: number; brightness?: number; contrast?: number; onProgress?: (progress: number) => void; enableCache?: boolean; cacheSize?: number; logger?: LoggerFunction; } /** * OCR处理器类 * * 使用Tesseract.js实现对身份证图像的OCR文字识别和信息提取功能 * * @example * ```typescript * // 创建OCR处理器 * const ocrProcessor = new OCRProcessor(); * * // 初始化OCR引擎 * await ocrProcessor.initialize(); * * // 处理身份证图像 * const idInfo = await ocrProcessor.processIDCard(idCardImageData); * console.log('识别到的身份证信息:', idInfo); * * // 使用结束后释放资源 * await ocrProcessor.terminate(); * ``` */ export declare class OCRProcessor implements Disposable { private worker; private ocrWorker; private initialized; private resultCache; private options; /** * 创建OCR处理器实例 * * @param options OCR处理器选项 */ constructor(options?: OCRProcessorOptions); /** * 初始化OCR引擎 * * 加载Tesseract OCR引擎和中文简体语言包,并设置适合身份证识别的参数 * * @returns {Promise<void>} 初始化完成的Promise */ initialize(): Promise<void>; /** * 处理身份证图像并提取信息 * @param imageData 要处理的身份证图像数据 * @returns 提取的身份证信息 */ processIDCard(imageData: ImageData): Promise<IDCardInfo>; /** * 解析身份证文本信息 * * 从OCR识别到的文本中提取结构化的身份证信息 * * @private * @param {string} text - OCR识别到的文本 * @returns {IDCardInfo} 提取到的身份证信息对象 */ /** * 格式化日期字符串为标准格式 (YYYY-MM-DD) * @param dateStr 原始日期字符串 * @returns 格式化后的日期字符串 */ private formatDateString; /** * 验证身份证号是否符合规则 * @param idNumber 身份证号 * @returns 是否有效 */ private validateIDNumber; private parseIDCardText; /** * 清除结果缓存 */ clearCache(): void; /** * 终止OCR引擎并释放资源 * * @returns {Promise<void>} 终止完成的Promise */ terminate(): Promise<void>; /** * 释放资源 */ dispose(): Promise<void>; } export {};