id-scanner-lib
Version:
Browser-based ID card, QR code, and face recognition scanner with liveness detection
132 lines (131 loc) • 3.27 kB
TypeScript
/**
* @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;
}