From 7bc49c32e9cdd3363215e24b47d7721ac17bafc8 Mon Sep 17 00:00:00 2001 From: icarus Date: Sun, 24 Aug 2025 20:46:12 +0800 Subject: [PATCH] =?UTF-8?q?refactor(ocr):=20=E7=A7=BB=E9=99=A4=E7=8B=AC?= =?UTF-8?q?=E7=AB=8B=E7=9A=84=E7=81=B0=E5=BA=A6=E5=A4=84=E7=90=86=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E5=B9=B6=E6=94=B9=E8=BF=9B=E9=A2=84=E5=A4=84=E7=90=86?= =?UTF-8?q?=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将灰度处理功能直接集成到OCR预处理中,不再需要单独的image模块 添加normalise和threshold处理以提升OCR识别效果 --- src/main/utils/image.ts | 11 ----------- src/main/utils/ocr.ts | 8 +++++--- 2 files changed, 5 insertions(+), 14 deletions(-) delete mode 100644 src/main/utils/image.ts diff --git a/src/main/utils/image.ts b/src/main/utils/image.ts deleted file mode 100644 index ad78a44d3d..0000000000 --- a/src/main/utils/image.ts +++ /dev/null @@ -1,11 +0,0 @@ -import sharp from 'sharp' - -/** - * 将图片转换为灰度图 - * @param image 输入的图片 Buffer - * @returns Promise 处理后的灰度图片 Buffer - * @throws {Error} 当图片处理失败时抛出错误 - */ -export const greyScale = (image: Buffer): Promise => { - return sharp(image).greyscale().toBuffer() -} diff --git a/src/main/utils/ocr.ts b/src/main/utils/ocr.ts index 911dae09dc..105d6bc858 100644 --- a/src/main/utils/ocr.ts +++ b/src/main/utils/ocr.ts @@ -1,16 +1,18 @@ import { ImageFileMetadata } from '@types' import { readFile } from 'fs/promises' - -import { greyScale } from './image' +import sharp from 'sharp' const preprocessImage = (buffer: Buffer) => { - return greyScale(buffer) + // threshold 70 is hard-encoded + const result = sharp(buffer).greyscale().normalise().threshold(70).toBuffer() + return result } /** * 加载并预处理OCR图像 * @param file - 图像文件元数据 * @returns 预处理后的图像Buffer + * @throws {Error} 当文件不存在或无法读取时抛出错误;当图像预处理失败时抛出错误 * * 预处理步骤: * 1. 读取图像文件