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 环境中轻松实现图文识别。通过上述步骤和代码示例,可以快速上手并集成到项目中。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐