UNPKG

id-scanner-lib

Version:

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

132 lines (131 loc) 3.27 kB
/** * @file 身份证检测器 * @description 提供身份证检测和解析功能 * @module modules/id-card/id-card-detector */ import { EventEmitter } from '../../core/event-emitter'; import { Result } from '../../core/result'; import { IDCardInfo } from './types'; /** * 身份证检测器配置选项 */ export interface IDCardDetectorOptions { /** 是否启用 */ enabled?: boolean; /** 最小置信度 */ minConfidence?: number; /** 是否检测身份证类型 */ detectType?: boolean; /** 是否检测边缘 */ detectEdge?: boolean; /** 是否启用边缘检测(用于更精确的边缘检测) */ enableEdgeDetection?: boolean; /** 是否启用OCR识别 */ enableOCR?: boolean; /** 是否裁剪并校正图像 */ cropAndAlign?: boolean; /** 是否启用防伪检测 */ enableAntiFake?: boolean; /** 是否返回原始图像 */ returnImage?: boolean; /** 模型路径 */ modelPath?: string; } /** * 图像处理配置选项 */ export interface ImageProcessOptions { /** 是否进行预处理 */ preprocess?: boolean; /** 是否校正图像 */ correctPerspective?: boolean; /** 是否增强图像 */ enhance?: boolean; /** 是否去噪 */ denoise?: boolean; /** 是否二值化 */ binarize?: boolean; } /** * 身份证检测器类 */ export declare class IDCardDetector extends EventEmitter { private options; private logger; private initialized; private models; /** * 构造函数 * @param options 配置选项 */ constructor(options?: IDCardDetectorOptions); /** * 初始化检测器 */ initialize(): Promise<void>; /** * 加载检测模型 * @private */ private loadDetectionModel; /** * 加载OCR模型 * @private */ private loadOCRModel; /** * 加载防伪模型 * @private */ private loadAntiFakeModel; /** * 处理图像 * @param image 图像源(可以是ImageData、HTMLImageElement、HTMLCanvasElement等) * @param processOptions 图像处理选项 * @returns 处理结果 */ processImage(image: ImageData | HTMLImageElement | HTMLCanvasElement, processOptions?: ImageProcessOptions): Promise<Result<IDCardInfo>>; /** * 预处理图像 * @param image 图像源 * @param options 处理选项 * @returns 处理后的图像 * @private */ private preprocessImage; /** * 检测身份证 * @param image 图像数据 * @returns 检测结果 * @private */ private detectIDCard; /** * 裁剪并校正图像 * @param image 图像数据 * @param edge 边缘信息 * @returns 校正后的图像 * @private */ private cropAndAlign; /** * 识别文字 * @param image 图像数据 * @param type 身份证类型 * @returns 识别结果 * @private */ private recognizeText; /** * 检测防伪特征 * @param image 图像数据 * @param detectionResult 检测结果 * @returns 防伪检测结果 * @private */ private detectAntiFake; /** * 释放资源 */ dispose(): void; }