前置知识
在学习和使用 @tessdata/msa 包前,你需要掌握以下知识:
- JavaScript 基础语法
- Node.js 的安装和使用
- npm 包管理器的使用
如果你还不熟悉以上知识,建议先学习一下。
简介
@tessdata/msa 是一个由 Tesseract OCR 提供的 npm 包,该包提供了一个多种字体支持的 OCR 模型。
OCR(Optical Character Recognition)即光学字符识别,是一种将图像转化为文本的技术,常常被用于数字化文档和自动化数据录入。
安装
安装 @tessdata/msa 可以使用 npm 包管理器,打开终端并输入以下命令:
npm install @tessdata/msa
使用
在使用 @tessdata/msa 前,你需要先准备一张图片,并将其放在你的项目中。这里假设你将图片命名为 sample.png
,并将其放在了项目的根目录中。
在您的 JavaScript 文件中,使用以下语句导入 @tessdata/msa 包:
const Tesseract = require('@tessdata/msa');
识别图片
识别图片的最基本使用方法如下:
Tesseract.recognize('./sample.png', 'eng', { logger: m => console.log(m) }).then(({data: {text}}) => { console.log(text); });
解析:
recognize()
方法接受三个参数:图片路径、语言代码和配置对象。我们将图片路径设置为./sample.png
,将语言设置为'eng'
(代表英语),并将配置对象写为一个对象字面量。配置对象中传入了
logger
属性,这表示在识别图片的过程中将日志信息输出到控制台。then()
方法将于识别结束后执行,它从返回的结果中提取 OCR 识别出的文本,并将其输出到控制台。
更多配置
@tessdata/msa 提供了一些配置选项,可以用于优化你的 OCR 识别。
whitelist / blacklist
在 OCR 识别的过程中,你可以传入一个 whitelist
属性或 blacklist
属性来筛选你想要或不想要识别的字符。以下是筛选数字的例子:
Tesseract.recognize('./sample.png', 'eng', { logger: m => console.log(m), whitelist: '0123456789' }).then(({data: {text}}) => { console.log(text); });
这里我们将白名单设置为数字集合 0123456789
。
类似地,你还可以使用黑名单,它将过滤你不希望识别的字符。
tessedit_char_whitelist / tessedit_char_blacklist
whitelist
和 blacklist
的另一个版本 tessedit_char_whitelist
和 tessedit_char_blacklist
,它们虽然功能类似,但使用方式会有一些不同。
Tesseract.recognize('./sample.png', 'eng', { logger: m => console.log(m), tessedit_char_whitelist: '0123456789' }).then(({data: {text}}) => { console.log(text); });
whitelist
属性的功能在该代码段中被改为了 tessedit_char_whitelist
。
psm
psm
(Page segmentation mode)是一种表示 OCR 引擎金额:在识别文本时要采用的页分段模式。Tesseract 提供了多种页分段模式,以适应不同种类的文本。
如下代码演示了如何使用 psm
属性来指定页分段模式:
Tesseract.recognize('./sample.png', 'eng', { logger: m => console.log(m), psm: 3 }).then(({data: {text}}) => { console.log(text); });
其中,psm
设置为 3
,一般用于文本检测。
other languages
@tessdata/msa 内置了多种语言的 OCR 模型。可以使用以下代码指定不同的语言:
Tesseract.recognize('./sample.png', 'fra', { logger: m => console.log(m), }).then(({data: {text}}) => { console.log(text); });
这里我们将语言设置为 'fra'
,代表法语。你可以在 ISO 639-2/3 code 中查找所有可用的语言代码。
总结
我们通过一个简单的例子,学习了如何使用 @tessdata/msa 这个 OCR 模型 npm 包。在实际开发中,使用这个包可以帮助我们从图片中提取数据,实现自动化的数据处理和录入,提高我们的开发效率。同时,我们也了解了一些定制化配置,可以帮助我们更好地应用 @tessdata/msa 包到我们的项目中。
示例代码
const Tesseract = require('@tessdata/msa'); Tesseract.recognize('./sample.png', 'eng', { logger: m => console.log(m) }).then(({data: {text}}) => { console.log(text); });
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005625881e8991b448df958