1、环境准备与安装
- 安装Node.js
确保系统已安装 Node.js(建议版本 ≥ v14),可通过node -v验证安装,这里不做详细说明。 - 新建main.js文件
- 安装依赖
yarn add tesseract.js
yarn add sharp
2、代码实现
const sharp = require("sharp");
const { createWorker } = require("tesseract.js");
// 图片预处理
async function preprocessImage(path) {
// 灰度化、对比度增强和二值化处理
return await sharp(path)
.greyscale() // 转为灰度图
.normalise() // 增强对比度
.threshold(128) // 二值化(阈值 0-255,值越大越严格)
.toBuffer();
}
// 核心识别代码
async function imageToText(imageBuffer) {
// eng:英文 chi_sim:简体中文 chi_tra:繁体中文
// 如果知道识别的是那种语言,可只写一种,识别速度会有所提升
const worker = await createWorker(["eng", "chi_sim", "chi_tra"], 1, {
logger: m => console.log(m), // 进度监控
errorHandler: err => console.error(err), // 错误信息输出
});
const {
data: { text },
} = await worker.recognize(imageBuffer);
await worker.terminate();
return text.replace(/\s+/g, " ").trim(); // 去除多余空格
}
async function main() {
console.time("图片转文字耗时");
const image = await preprocessImage(
"C:/Users/Mi/Desktop/study-demo/Node Demo/imageToText/img/zh1.jpg"
);
const text = await imageToText(image);
console.log(text);
console.timeEnd("图片转文字耗时");
}
main();
将以上代码复制到main.js文件中,在控制台执行node ./main.js,即可进行文字提取