简介
Tesseract.js 是一个 JavaScript 库,可以从图像中获取文字。
OCR 光学字符识别
optical character recognition
安装
npm install tesseract.js --save
我的node版本是 v12.16.2
安装的 tesseract.js 版本是
"tesseract.js": "^4.1.1"
引入
import Tesseract from 'tesseract.js';
使用Tesseract.js执行OCR
先看一下官网的例子
使用 Tesseract.js 执行OCR
Tesseract.recognize(
"https://tesseract.projectnaptha.com/img/eng_bw.png", // 识别图片
"eng",
{ logger: (info) => console.log(info) } // 可选参数,用于输出调试信息
).then(({ data: { text } }) => {
console.log("OCR结果");
console.log(text);
})
.catch((error) => {
console.error("OCR出现错误:", error);
});
tesseract.projectnaptha.com/img/eng_bw.…
官网给出的英文图片链接。
图片很清晰,文字也很整齐。
控制台打印,识别出来的文字:
Mild Splendour of the various-vested Night!
Mother of wildly-working visions! haill
I watch thy gliding, while with watery light
Thy weak eye glimmers through a fleecy veil;
And when thou lovest thy pale orb to shroud
Behind the gather’d blackness lost on high;
And when thou dartest from the wind-rent cloud
Thy placid lightning o’er the awaken’d sky.
识别度挺高,可以说是 100% 的准确率。
谷歌翻译一下,这段话的意思:
温和灿烂的各种归属之夜!
疯狂工作的幻象之母!
欢呼吧,我看着你滑翔,而你微弱的眼睛透过蓬松的面纱闪闪发光;
当你喜欢你苍白的球体笼罩在高处消失的聚集的黑暗之后;
当你从风中腾空而起时,你平静的闪电划过苏醒的天空。
我又谷歌了一下,这是英国诗人柯尔律治的《To the Autumnal Moon》致秋月。
我自己写一个 demo 上传图片,进行识别,测试一下。
那么,如何识别英文呢?选择中文语言包,即可。
tesseract-ocr.github.io/tessdoc/Dat…
设置识别语言为英文 eng
你可以根据需要更改为其他语言代码,例如中文为 chi_sim
多语言识别,通过 + 连接,例如中英文识别为 “eng+chi_sim”
然后,我自己写一个 demo 上传中文图片,进行中文识别,测试一下。
纯文字识别,居然还错了一个字。
再试一个合同文件,Tesseract.js 识别率,在纯文字,排版规则的情况下,还行。
李清照的《如梦令》图片加文字
结果,惨不忍睹。好好的一首诗,成了这样:
《 如 梦 仁 》
李 清 照
昨 夜 雨 差 风 骤 , 浓 睡 不 消 残 酒 。
试 问 卷 宜 人 , 即 道 海 棠 侯 旧 。
知 否 ? 知 吾 ? 应 是 绶 肥 红 瘦 。
几乎让人忘记了原版。附上原版:
《如梦令》
李 清 照
昨夜雨疏风骤,浓睡不消残酒。
试问卷帘人,却道海棠依旧。
知否,知否?应是绿肥红瘦。
最后的话
以上,如果对你有用的话,不妨点赞收藏关注一下,谢谢 ?
? 微信公众号: OrzR3
? 不定期更新一些技术类,生活类,读书类的文章。