/**
 * @file 图像处理工具类
 * @description 提供图像预处理功能，用于提高OCR识别率
 * @module ImageProcessor
 * @version 1.3.2
 */
/**
 * 图像处理器配置选项
 */
export interface ImageProcessorOptions {
    brightness?: number;
    contrast?: number;
    grayscale?: boolean;
    invert?: boolean;
    blur?: number;
    sharpen?: boolean;
}
/**
 * 图像压缩选项
 */
export interface ImageCompressionOptions {
    maxSizeMB?: number;
    maxWidthOrHeight?: number;
    useWebWorker?: boolean;
    maxIteration?: number;
    quality?: number;
    fileType?: string;
}
/**
 * 图像处理工具类
 *
 * 提供各种图像处理功能，用于优化识别效果
 */
export declare class ImageProcessor {
    /**
     * 将ImageData转换为Canvas元素
     *
     * @param {ImageData} imageData - 要转换的图像数据
     * @returns {HTMLCanvasElement} 包含图像的Canvas元素
     */
    static imageDataToCanvas(imageData: ImageData): HTMLCanvasElement;
    /**
     * 将Canvas转换为ImageData
     *
     * @param {HTMLCanvasElement} canvas - 要转换的Canvas元素
     * @returns {ImageData|null} Canvas的图像数据，如果获取失败则返回null
     */
    static canvasToImageData(canvas: HTMLCanvasElement): ImageData | null;
    /**
     * 调整图像亮度和对比度
     *
     * @param imageData 原始图像数据
     * @param brightness 亮度调整值 (-100到100)
     * @param contrast 对比度调整值 (-100到100)
     * @returns 处理后的图像数据
     */
    static adjustBrightnessContrast(imageData: ImageData, brightness?: number, contrast?: number): ImageData;
    /**
     * 将图像转换为灰度图
     *
     * @param imageData 原始图像数据
     * @returns 灰度图像数据
     */
    static toGrayscale(imageData: ImageData): ImageData;
    /**
     * 锐化图像
     *
     * @param imageData 原始图像数据
     * @param amount 锐化程度，默认为2
     * @returns 锐化后的图像数据
     */
    static sharpen(imageData: ImageData, amount?: number): ImageData;
    /**
     * 对图像应用阈值操作，增强对比度
     *
     * @param imageData 原始图像数据
     * @param threshold 阈值 (0-255)
     * @returns 处理后的图像数据
     */
    static threshold(imageData: ImageData, threshold?: number): ImageData;
    /**
     * 将图像转换为黑白图像（二值化）
     *
     * @param imageData 原始图像数据
     * @returns 二值化后的图像数据
     */
    static toBinaryImage(imageData: ImageData): ImageData;
    /**
     * 使用OTSU算法计算最佳阈值
     *
     * @param imageData 灰度图像数据
     * @returns 最佳阈值
     */
    private static getOtsuThreshold;
    /**
     * 批量应用图像处理
     *
     * @param imageData 原始图像数据
     * @param options 处理选项
     * @returns 处理后的图像数据
     */
    static batchProcess(imageData: ImageData, options: ImageProcessorOptions): ImageData;
    /**
     * 压缩图片文件
     *
     * @param file 图片文件
     * @param options 压缩选项
     * @returns Promise<File> 压缩后的文件
     */
    static compressImage(file: File, options?: ImageCompressionOptions): Promise<File>;
    /**
     * 从图片文件创建ImageData
     *
     * @param file 图片文件
     * @returns Promise<ImageData>
     */
    static createImageDataFromFile(file: File): Promise<ImageData>;
    /**
     * 将ImageData转换为File对象
     *
     * @param imageData ImageData对象
     * @param fileName 输出文件名
     * @param fileType 输出文件类型
     * @param quality 图片质量 (0-1)
     * @returns Promise<File>
     */
    static imageDataToFile(imageData: ImageData, fileName?: string, fileType?: string, quality?: number): Promise<File>;
    /**
     * 将图像调整到指定大小
     * @param image 输入图像
     * @param maxWidth 最大宽度
     * @param maxHeight 最大高度
     * @param keepAspectRatio 是否保持宽高比
     * @returns 调整后的图像
     */
    static resizeImage(image: ImageData | HTMLImageElement | HTMLCanvasElement, maxWidth: number, maxHeight: number, keepAspectRatio?: boolean): ImageData;
    /**
     * 边缘检测算法，用于识别图像中的边缘
     * 基于Sobel算子实现
     *
     * @param imageData 原始图像数据，应已转为灰度图
     * @param threshold 边缘阈值，默认为30
     * @returns 检测到边缘的图像数据
     */
    static detectEdges(imageData: ImageData, threshold?: number): ImageData;
    /**
     * 卡尼-德里奇边缘检测
     * 相比Sobel更精确的边缘检测算法
     *
     * @param imageData 灰度图像数据
     * @param lowThreshold 低阈值
     * @param highThreshold 高阈值
     * @returns 边缘检测结果
     */
    static cannyEdgeDetection(imageData: ImageData, lowThreshold?: number, highThreshold?: number): ImageData;
    /**
     * 高斯模糊
     */
    private static gaussianBlur;
    /**
     * 生成高斯核
     */
    private static generateGaussianKernel;
    /**
     * 计算梯度强度和方向
     */
    private static computeGradients;
    /**
     * 非极大值抛弃
     */
    private static nonMaxSuppression;
    /**
     * 双阈值处理
     */
    private static hysteresisThresholding;
}
