> 技术文档 > 【高频考点精讲】前端OCR识别方案:如何用Tesseract.js识别图片文字?

【高频考点精讲】前端OCR识别方案:如何用Tesseract.js识别图片文字?


前端OCR识别方案:如何用Tesseract.js识别图片文字?

🧑‍🏫 作者:全栈老李

📅 更新时间:2025 年 5 月

🧑‍💻 适合人群:前端初学者、进阶开发者

🚀 版权:本文由全栈老李原创,转载请注明出处。

今天咱们聊聊一个前端工程师可能会遇到的\"硬核\"需求——在浏览器里直接识别图片中的文字。想象一下,用户上传一张发票照片,你的网页就能自动提取发票号码;或者用户拍个菜单,你的应用就能识别出菜品名称。这听起来像是后端该干的活,但其实前端也能搞定!(全栈老李温馨提示:前端越来越强大了)

为什么是Tesseract.js?

说到OCR(光学字符识别),你可能听说过百度OCR、阿里OCR这些商业API。但今天我要介绍的是一个纯前端解决方案——Tesseract.js。它是著名的开源OCR引擎Tesseract的JavaScript移植版本,最大的特点就是完全在浏览器中运行,不需要后端服务支持。

优点很明显

  • 隐私保护:图片不用上传到服务器
  • 离线可用:打包进PWA应用就能离线工作
  • 免费开源:没有API调用次数限制

当然也有局限

  • 准确率比商业API略低
  • 大文件处理可能卡顿
  • 中文识别需要额外加载语言包

实战:5分钟实现图片文字识别

先来看看最基本的用法。我们需要做三件事:

  1. 引入Tesseract.js库
  2. 加载语言数据(识别中文要加载chi_sim)
  3. 调用识别API
<!DOCTYPE html><html><head> <title>Tesseract.js 文字识别</title> <script src=\"https://cdn.jsdelivr.net/npm/tesseract.js@4/dist/tesseract.min.js\"></script></head><body> <input type=\"file\" id=\"upload\" accept=\"image/*\"> <div id=\"result\"></div> <script> document.getElementById(\'upload\').addEventListener(\'change\', async (e) => {  const file = e.target.files[0]; if (!file) return; // 显示加载状态 const resultDiv = document.getElementById(\'result\'); resultDiv.innerHTML = \'识别中...\'; try {  // 调用Tesseract识别 const {  data: {  text } } = await Tesseract