UNPKG

id-scanner-lib

Version:

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

169 lines (163 loc) 4.22 kB
/** * @file 类型定义文件 * @description 定义全局类型 * @module Types */ /** * 身份证检测结果接口 * * 包含身份证检测的结果信息,如是否成功检测到身份证、身份证的四个角点坐标以及裁剪后的身份证图像 * * @interface DetectionResult * @property {boolean} success - 是否成功检测到身份证 * @property {Object[]} [corners] - 检测到的身份证四个角点坐标 * @property {number} corners[].x - 角点X坐标 * @property {number} corners[].y - 角点Y坐标 * @property {ImageData} [croppedImage] - 裁剪后的身份证图像 * @property {ImageData} [imageData] - 原始图像数据 * @property {Object} [boundingBox] - 检测到的身份证边界框 * @property {number} boundingBox.x - 边界框左上角X坐标 * @property {number} boundingBox.y - 边界框左上角Y坐标 * @property {number} boundingBox.width - 边界框宽度 * @property {number} boundingBox.height - 边界框高度 * @property {number} [confidence] - 检测结果的置信度 * @property {string} [message] - 检测结果的消息 */ export interface DetectionResult { success: boolean; corners?: { x: number; y: number }[]; croppedImage?: ImageData; imageData?: ImageData; boundingBox?: { x: number; y: number; width: number; height: number; }; confidence?: number; message?: string; } /** * 身份证信息接口 * * 包含从身份证中提取的各项个人信息 * * @interface IDCardInfo * @property {string} [name] - 姓名 * @property {string} [gender] - 性别 * @property {string} [nationality] - 民族 * @property {string} [birthDate] - 出生日期 * @property {string} [address] - 地址 * @property {string} [idNumber] - 身份证号码 * @property {string} [issuingAuthority] - 签发机关 * @property {string} [validPeriod] - 有效期限 * * @example * ```typescript * // 身份证信息示例 * const idInfo: IDCardInfo = { * name: '张三', * gender: '男', * nationality: '汉族', * birthDate: '1990-01-01', * address: '北京市海淀区xxxxx', * idNumber: '110101199001011234', * issuingAuthority: '北京市公安局海淀分局', * validPeriod: '2020.01.01-2040.01.01' * }; * ``` */ export interface IDCardInfo { /** 姓名 */ name?: string; /** 性别 */ gender?: string; /** 民族 */ ethnicity?: string; /** 出生日期 */ birthDate?: string; /** 地址 */ address?: string; /** 身份证号码 */ idNumber?: string; /** 签发机关 */ issueAuthority?: string; /** 有效期起始日期 */ validFrom?: string; /** 有效期截止日期 */ validTo?: string; /** 有效期限(完整文本) */ validPeriod?: string; /** 照片区域 */ photoRegion?: { x: number; y: number; width: number; height: number; }; /** 类型 */ type?: string; /** 置信度 */ confidence?: number; /** 其他属性 */ [key: string]: any; } /** * 点坐标 */ export interface Point { x: number; y: number; } /** * 矩形区域 */ export interface Rect { x: number; y: number; width: number; height: number; } /** * 可释放资源接口 */ export interface Disposable { /** 释放资源 */ dispose(): Promise<void>; } /** * 图像处理选项 */ export interface ImageProcessingOptions { /** 亮度调整 (-100 到 100) */ brightness?: number; /** 对比度调整 (-100 到 100) */ contrast?: number; /** 饱和度调整 (-100 到 100) */ saturation?: number; /** 锐化强度 (0 到 10) */ sharpen?: number | boolean; /** 高斯模糊半径 (0 到 10) */ blur?: number; /** 是否应用灰度转换 */ grayscale?: boolean; /** 是否应用二值化 */ binarize?: boolean; /** 二值化阈值 (0 到 255) */ threshold?: number; /** 是否应用边缘检测 */ edgeDetection?: boolean; /** 是否应用降噪 */ denoise?: boolean; /** 是否应用直方图均衡化 */ histogramEqualization?: boolean; /** 是否应用透视校正 */ perspectiveCorrection?: boolean; /** 透视校正点 */ perspectivePoints?: { topLeft: Point; topRight: Point; bottomRight: Point; bottomLeft: Point; }; }