【js】js识别图片中的文字插件 tesseract.js:

本文介绍了如何在Vue项目中通过tesseract.js识别图片中的文字,包括安装依赖、引入插件、选择图片以及使用worker进行多线程识别。同时提到了一个常见问题——worker报错的解决方案。
摘要由CSDN通过智能技术生成


一、效果:

image.png

二、文档:

GitHub - tesseract.js
js识别图片中的文字插件 tesseract.js_js 图片文字识别-CSDN博客

三、实现:
1.安装依赖
npm i tesseract.js
npm i image-tools --save
2.引入插件
<template>
	<view class="container">
		<!-- 选择图片 -->
		<button @click="imageOcrRecognition">选择图片</button>
		<view v-html="content"></view>
	</view>
</template>
  
<script>
	import { pathToBase64, base64ToPath } from 'image-tools'
	import { createWorker } from 'tesseract.js';//【法一】worker多线程引入这个(推荐)
	import Tesseract from 'tesseract.js'; //【法二】js单线程引入这个(这个识别速度慢)

	export default {
		data() {
			return {
				content: '',
			}
		},
    methods: {
			imageOcrRecognition() {
				const that = this;
				uni.chooseImage({
          count: 1,
					sizeType: ['original', 'compressed'],
					sourceType: ['album', 'camera'],
          success: (res) => {
						pathToBase64(res.tempFilePaths[0]).then(base64 => {
							//【法一】使用worker线程识别
							that.workerTesseract(base64);

              //【法二】直接在js线程中识别  
							// Tesseract.recognize(base64, 'chi_sim', { logger: m => console.log('输出识别中的日志信息:',m) }).then(res) => {
              // 	console.log('识别结果:', res);
							// })
            })
					}
				})
      },
      //【法一】使用worker线程识别
      async workerTesseract(base64) {
				const worker = await createWorker();
        await worker.loadLanguage('chi_sim');// eng(英文) / chi_sim(简体中文) / chi_tra(繁体中文) / eng+chi_sim(英文+简体中文) / (如果有多种语言用+连接即可)
        await worker.initialize('chi_sim'); //使用一种语言会快一些,多种语言混合会慢一些
        const res = await worker.recognize(base64);
				console.log('识别结果:', res); //text是最后识别到的内容
        await worker.terminate(); //终止worker线程,节省内存资源
		},
	}
</script>

四、问题:
const worker = await createWorker({ logger: m => console.log('输出识别中的日志信息:',m) });
报错:
Failed to execute 'postMessage' on 'Worker': [object Object] could not be cloned
  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sun Peng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值