在做条形码识别的时候,有可能碰到条形码因为被破坏,无法识别的情况。通常1D条形码的下面都印着对应的数字。这个时候还可以借助下OCR。虽然OCR的成功率可能不高,但是多一种识别方法也是好的。这里分享下如何用Tesseract.js来识别一张1D条形码。
如何使用Tesseract.js
使用npm的命令安装Tesseract.js:
npm install tesseract.js
简单的运行下这些示例代码会发现第一次运行速度很慢,原因是需要下载语言包。要加快速度可以参考https://github.com/jeromewu/tesseract.js-offline 的示例代码,指定语言包的路径。
Node
const path = require('path');
const worker = createWorker({
langPath: path.join(__dirname, '..', 'lang-data'),
logger: m => console.log(m),
});
(async () => {
await worker.load();
await worker.loadLanguage('eng');
await worker.initialize('eng');
const { data: { text } } = await worker.recognize('image-path'));
console.log(text);
await worker.terminate();
})();