使用 Tesseract.js 实现图文识别 OCR
·
Tesseract.js 是一个基于 Tesseract OCR 引擎的 JavaScript 库,能够在浏览器和 Node.js 环境中实现图文识别。以下是如何使用 Tesseract.js 实现 OCR 的详细步骤和代码示例。
安装 Tesseract.js
在项目中安装 Tesseract.js 可以通过 npm 或直接通过 CDN 引入。
npm install tesseract.js
或者通过 CDN 引入:
<script src="https://cdn.jsdelivr.net/npm/tesseract.js@2.1.4/dist/tesseract.min.js"></script>
初始化 Tesseract.js
在项目中引入 Tesseract.js 后,需要初始化 Tesseract 实例。
const Tesseract = require('tesseract.js');
加载图像并进行识别
使用 Tesseract.js 进行 OCR 识别的核心步骤是加载图像并调用 recognize 方法。
Tesseract.recognize(
'https://tesseract.projectnaptha.com/img/eng_bw.png',
'eng',
{
logger: m => console.log(m) // 可选:用于查看识别进度
}
).then(({ data: { text } }) => {
console.log(text);
});
处理本地图像文件
如果需要处理本地图像文件,可以使用 FileReader 将图像文件转换为 Base64 格式,然后传递给 Tesseract.js。
const fileInput = document.getElementById('fileInput');
fileInput.addEventListener('change', (event) => {
const file = event.target.files[0];
const reader = new FileReader();
reader.onload = (e) => {
Tesseract.recognize(
e.target.result,
'eng',
{
logger: m => console.log(m)
}
).then(({ data: { text } }) => {
console.log(text);
});
};
reader.readAsDataURL(file);
});
多语言支持
Tesseract.js 支持多种语言的 OCR 识别。可以通过指定语言代码来识别不同语言的文本。
Tesseract.recognize(
'https://tesseract.projectnaptha.com/img/fra.png',
'fra',
{
logger: m => console.log(m)
}
).then(({ data: { text } }) => {
console.log(text);
});
处理识别结果
识别结果包含多个字段,如文本、置信度等。可以根据需要处理这些数据。
Tesseract.recognize(
'https://tesseract.projectnaptha.com/img/eng_bw.png',
'eng',
{
logger: m => console.log(m)
}
).then(({ data: { text, confidence, blocks } }) => {
console.log('识别文本:', text);
console.log('置信度:', confidence);
console.log('文本块:', blocks);
});
错误处理
在使用 Tesseract.js 时,可能会遇到各种错误,如网络问题、图像加载失败等。可以通过 catch 方法捕获并处理这些错误。
Tesseract.recognize(
'https://tesseract.projectnaptha.com/img/eng_bw.png',
'eng',
{
logger: m => console.log(m)
}
).then(({ data: { text } }) => {
console.log(text);
}).catch(err => {
console.error('识别失败:', err);
});
总结
Tesseract.js 是一个功能强大的 OCR 工具,能够在浏览器和 Node.js 环境中轻松实现图文识别。通过上述步骤和代码示例,可以快速上手并集成到项目中。
更多推荐




所有评论(0)