h5实现ocr
H5 实现 OCR 的方法
使用 Tesseract.js 库
Tesseract.js 是一个基于 Tesseract OCR 引擎的 JavaScript 库,支持在浏览器中直接运行 OCR 功能。以下是实现步骤:
安装 Tesseract.js:
npm install tesseract.js
在 HTML 中引入并使用:
<script src="https://cdn.jsdelivr.net/npm/tesseract.js@4/dist/tesseract.min.js"></script>
<input type="file" id="upload" accept="image/*">
<script>
document.getElementById('upload').addEventListener('change', function(e) {
Tesseract.recognize(e.target.files[0], 'eng')
.then(result => console.log(result.text))
.catch(err => console.error(err));
});
</script>
使用 WebAssembly 和 OpenCV
结合 OpenCV.js 和自定义 OCR 模型,可以在 H5 中实现更灵活的 OCR 功能。需要加载 OpenCV.js 和训练好的模型文件。
加载 OpenCV.js:
<script async src="https://docs.opencv.org/4.5.5/opencv.js"></script>
处理图像并调用模型:
const img = document.getElementById('input-image');
cv.imread(img).convertTo(gray, cv.COLOR_RGBA2GRAY);
// 调用预处理的 OCR 模型逻辑
使用云服务 API
调用第三方 OCR 云服务(如百度 OCR、腾讯 OCR)的 API,通过 H5 前端上传图像并获取识别结果。
示例调用百度 OCR:

fetch('https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: `image=${base64Image}&access_token=YOUR_ACCESS_TOKEN`
})
.then(response => response.json())
.then(data => console.log(data.words_result));
性能优化建议
- 图像预处理:在上传或识别前,对图像进行裁剪、灰度化或二值化处理,提升识别准确率。
- 语言包选择:Tesseract.js 支持多语言,但加载特定语言包(如
chi_sim中文)会增大体积,按需加载。 - Web Worker:将 OCR 计算任务放在 Web Worker 中,避免阻塞主线程。
兼容性注意事项
- Tesseract.js 4.0+ 支持大部分现代浏览器,但在移动端可能受限于计算性能。
- 云服务 API 需处理跨域问题,建议通过后端代理或配置 CORS。
- OpenCV.js 的加载时间较长,适合复杂场景但需优化初始化体验。


