Tesseract.js处理本地文件报错,URL模式正常,求解决方案
Tesseract.js v2.1.0处理本地图片报错的解决办法
问题描述
使用Tesseract.js处理网络URL图片正常,但处理本地文件时报错,使用版本为v2.1.0,代码如下:
const { createWorker } = require('tesseract.js'); const worker = createWorker({ logger: m => console.log(m), // Add logger here }); (async () => { await worker.load(); await worker.loadLanguage('eng'); await worker.initialize('eng'); const { data: { text } } = await worker.recognize('download.png'); console.log(text); await worker.terminate(); })();
报错截图:
解决办法
修正文件路径
相对路径download.png是相对于Node.js命令的执行目录,而非脚本所在目录。可以用Node.js的path模块生成绝对路径:const path = require('path'); const imgPath = path.join(__dirname, 'download.png'); // 获取脚本所在目录下的图片路径 const { data: { text } } = await worker.recognize(imgPath);检查文件权限
确保Node.js进程拥有该图片文件的读取权限。Linux/macOS下可执行chmod +r download.png赋予读取权限;Windows下检查文件是否被锁定或调整权限设置。验证文件有效性
确认download.png是完整有效的PNG文件,可尝试用图片查看器打开,或更换其他格式图片(如JPG)测试识别功能是否正常。转为Buffer传入
Tesseract.js v2部分环境下对本地文件路径支持有限,可将文件转为Buffer后传入recognize:const fs = require('fs'); const imgBuffer = fs.readFileSync('download.png'); const { data: { text } } = await worker.recognize(imgBuffer);
内容的提问来源于stack exchange,提问作者ba_
相关产品推荐
相关产品推荐

