electron本地OCR实现

使用tesseract.js - npm (npmjs.com)

官方demo:GitHub - Balearica/tesseract.js-electron: An example to use tesseract.js in electron

目录结构:

javascript 复制代码
// 引入
<script type="module" src="./ocr/tesseract.js"></script>

// 使用
async function ocr() {
    const worker = await Tesseract.createWorker("chi_sim", 1, {
      workerPath: "./ocr/worker.js", langPath: "./lang-data", corePath: "tesseract-core.wasm.js", logger: m => console.log(m), gzip: true,
      workerBlobURL: false
    });
    const ret = await worker.recognize('./images/test.png');
    console.log(ret.data.text);
    alert(ret.data.text);
    await worker.terminate();
  }

需要注意的地方:

1. 三个文件都可以npm install tesseract.js后在node_modules中找到

2. 语言包下载地址: tessdata/4.0.0_best/chi_sim.traineddata.gz at gh-pages · naptha/tessdata · GitHub

3. langPath与corePath的文件位置都是基于workerPath的相对路径

4. workerBlobURL要写false

5. 语言包若未经过解压gzip写true

相关推荐
Doris89315 小时前
【JS】Web APIs BOM与正则表达式详解
前端·javascript·正则表达式
南游15 小时前
后台计时器罢工?我改用visibilitychange监听,代码从此‘永不停机’!
javascript
晚霞的不甘15 小时前
实战进阶:构建高性能、高可用的 Flutter + OpenHarmony 车载 HMI 系统
开发语言·javascript·flutter
网络点点滴15 小时前
pinia简介
开发语言·javascript·vue.js
局i15 小时前
v-for 与 v-if 的羁绊:Vue 中列表渲染与条件判断的爱恨情仇
前端·javascript·vue.js
狮子座的男孩15 小时前
js函数高级:06、详解闭包(引入闭包、理解闭包、常见闭包、闭包作用、闭包生命周期、闭包应用、闭包缺点及解决方案)及相关面试题
前端·javascript·经验分享·闭包理解·常见闭包·闭包作用·闭包生命周期
春卷同学15 小时前
基于Electron开发的跨平台鸿蒙PC剪刀石头布游戏应用
游戏·electron·harmonyos
风止何安啊16 小时前
从 “牵线木偶” 到 “独立个体”:JS 拷贝的爱恨情仇(浅拷贝 VS 深拷贝)
前端·javascript·面试
漫天黄叶远飞16 小时前
地址与地基:在 JavaScript 的堆栈迷宫里,重新理解“复制”的哲学
前端·javascript·面试
ohyeah16 小时前
深入理解 JavaScript 中的继承与 instanceof 原理
前端·javascript