【前端】使用tesseract插件识别提取图片中的文字

news2024/11/16 1:27:42

前言

有时候项目需要识别证照信息,或者拍照搜索内容等。图片处理一般是后端处理比较好,不过前端也有相关插件处理,tesseract.js就是一种前端处理方案。

使用tesseract

tesseract更多的语言模型:language配置

安装

Tesseract.js 可通过本地拷贝或 CDN 使用

CDN

<!-- v5 -->
<script src='https://cdn.jsdelivr.net/npm/tesseract.js@5/dist/tesseract.min.js'></script>

引用后,使用全局对象 Tesseract 即可。

npm / yarn

# 安装最新版本
npm install tesseract.js
yarn add tesseract.js

# 安装指定版本
npm install tesseract.js@3.0.3
yarn add tesseract.js@3.0.3

使用项目环境支持的模块语法引入即可。
例如,ESM引入:

import { createWorker } from 'tesseract.js';

代码中使用

开启worker使用

使用 createWorker会开启woker线程识别图片,并提取文字,第一个参数为语言模型类型。
createWorker参数说明
最后不用时,记得调用worker.terminate把woker关掉,避免造成卡顿、内存干爆等情况。

import { createWorker } from 'tesseract.js';
(async () => {
//	创建woker,并选用语言模型,
  const worker = await createWorker('eng');
  const ret = await worker.recognize('https://tesseract.projectnaptha.com/img/eng_bw.png');
  console.log(ret.data.text);
  //	关闭woker
  await worker.terminate();
})();

直接使用

调用 recognize 识别图片,并提取文字, recognize 的工作原理与 worker.recognize 相同,只是每次调用该函数时都会创建、加载和销毁一个新的 Worker。
参数:

  • 第一个参数:本地图片地址、base64、blob对象、buffer、 img元素或canvas元素(支持的图片类型:bmp, jpg, png, pbm, webp).
  • 第二个参数:语言模型,表示要下载的语言训练数据的字符串,多个语言用 + 连接,例如:eng+chi_tra。
  • 第三个参数:配置

该函数已经过时,应由 worker.recognize 代替,官方推荐使用 createWorker。

import { recognize } from 'tesseract.js';
let src = 'https://tesseract.projectnaptha.com/img/eng_bw.png'
recognize(src, 'chi_sim+eng')
            .then(result => {
              var extractedText = result.data.text;
              console.log('Extracted Text:', extractedText);
              document.getElementById('extracted-text').textContent = extractedText;
            })
            .catch(error => {
              console.error('Error:', error);
            });

效果

在这里插入图片描述



<body>
  <h1></h1>
  <input type="file" id="image-input" accept="image/*">
  <button onclick="processImage()">提取文字</button>
  <div id="extracted-text"></div>
  <!-- tesseract.jsv5  CDN -->
  <script defer src='https://cdn.jsdelivr.net/npm/tesseract.js@5/dist/tesseract.min.js'></script>
  <script defer>
    let worker;
    // 处理上传的图像
    function processImage() {
      var input = document.getElementById('image-input');
      if (input.files && input.files[0]) {
        var reader = new FileReader();
        reader.onload = async function (e) {
          // 图像加载完成后,执行文字提取
          worker = await Tesseract.createWorker('chi_sim+eng')
          worker.recognize(e.target.result)
            .then(result => {
              var extractedText = result.data.text;
              console.log('Extracted Text:', extractedText);
              document.getElementById('extracted-text').textContent = extractedText;

            })
            .catch(error => {
              console.error('Error:', error);
            }).finally(() => {
              console.log(123);
              if (worker)
                worker.terminate();

            })
        };
        reader.readAsDataURL(input.files[0]);
      }
    }
  </script>
</body>

结语

在使用时发现识别中文的语言训练模型准确率不高,英文或数字蛮准。 如果项目涉及识别中文,请使用其他方案,或者自己训练符合要求的语言模型。
结束了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1116386.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

react中JSX基础与useState的基本使用 + 评论显示删除需求案例

参考视频&#xff1a;https://www.bilibili.com/video/BV1ZB4y1Z7o8/?p3&spm_id_frompageDriver&vd_source5c584bd3b474d579d0bbbffdf0437c70 如果没有安装create-react-app需要先全局安装 命令&#xff1a;npm i -g create-react-app1.快速搭建开发环境 create-re…

国内有哪些做得好的企业协同办公软件

在当今信息化时代&#xff0c;企业协同办公软件成为了提升企业效率和推动协作的重要工具。国内市场涌现出许多优秀的企业协同办公软件&#xff0c;为企业提供了高效、便捷的协同办公解决方案。在本文中&#xff0c;我们将向大家介绍3款在国内好评如潮的企业协同办公软件&#x…

驱动day2 字符设备驱动 LED亮灯

可参考arm点灯C语言 cortex-A7核 点LED灯 &#xff08;附 汇编实现、使用C语言 循环实现、使用C语言 封装函数实现【重要、常用】&#xff09;-CSDN博客 1 应用程序 test.c #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <…

Adobe 推出 Photoshop Elements 2024 新版

&#x1f989; AI新闻 &#x1f680; Adobe 推出 Photoshop Elements 2024 新版 摘要:Adobe 最新发布 Photoshop Elements 2024 版本,新增引入 AI 功能,提供匹配颜色、创建照片卷、一键选择照片天空或背景等新功能,界面也进行了优化更新。本次发布重点加强了 AI 支持,简化复杂…

软考系列(系统架构师)- 2019年系统架构师软考案例分析考点

试题一 软件架构&#xff08;架构风格、质量属性&#xff09; 【问题1】&#xff08;13分&#xff09; 针对用户级别与折扣规则管理功能的架构设计问题&#xff0c;李工建议采用面向对象的架构风格&#xff0c;而王工则建议采用基于规则的架构风格。请指出该系统更适合采用哪种…

ant design vue Message 用法以及内容为 html片段情况

ant design vue 的 Message 用法 全局展示操作反馈信息 何时使用 # 可提供成功、警告和错误等反馈信息。顶部居中显示并自动消失&#xff0c;是一种不打断用户操作的轻量级提示方式。 全局配置&#xff1a; // main.ts// 进行全局配置 message.config({top: 0.7rem,//高度…

Qt作业九

1、思维导图 2、作业 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimer> #include <QTime> #include <QTimerEvent> #include <QTextToSpeech>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAME…

面向对象设计原则,详细介绍及分析

一、介绍&#xff1a; 面向对象设计原则是面向对象设计的基石&#xff0c;是面向对象设计的质量、保障、思想。 一共有七个设计原则&#xff0c;设计模式就是面向对象设计原则的经典应用 单一职责原则* 强调&#xff1a;高内聚低耦合&#xff0c;每一种类型的业务区分 开闭原则…

计算各数位的和是否相等(桶排)

// 分别计算左右两边各数的和&#xff0c;不同值时的数量 eg.四位数&#xff0c;左边数的有10~99&#xff0c;右边数有00~99 和有1~18 和有0~18 桶排&#xff0c;和相同放一个桶&#xff0c;分别计算左右两边不同和的数量 while (len < 8){int left[50] …

2023区块链国赛有黑幕

2023全国职业院校技能大赛区块链技术应用赛项 有黑幕&#xff01;&#xff01;河北软件职业技术学院举行的全国职业院校技能大赛区块链技术应用赛项违反比赛公平原则&#xff1a; 1、在评分阶段居然允许企业人员进入裁判所在区域&#xff0c;偏向性的引导裁判评分&#xff0c…

只需五步,在Linux安装chrome及chromedriver(CentOS)

一、安装Chrome 1&#xff09;先执行命令下载chrome&#xff1a; wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm2&#xff09;安装chrome yum localinstall google-chrome-stable_current_x86_64.rpm看到下图中的Complete出现则代表安装…

网络安全—自学笔记

目录 一、自学网络安全学习的误区和陷阱 二、学习网络安全的一些前期准备 三、网络安全学习路线 四、学习资料的推荐 想自学网络安全&#xff08;黑客技术&#xff09;首先你得了解什么是网络安全&#xff01;什么是黑客&#xff01; 网络安全可以基于攻击和防御视角来分类…

搭建哨兵架构(windows)

参考文章&#xff1a;Windows CMD常用命令大全&#xff08;值得收藏&#xff09;_cmd命令-CSDN博客 搭建哨兵架构&#xff1a;redis-server.exe sentinel.conf --sentinel 1.在主节点上创建哨兵配置 - 在Master对应redis.conf同目录下新建sentinel.conf文件&#xff0c;名字绝…

<蓝桥杯软件赛>零基础备赛20周--第1周

报名明年年4月蓝桥杯软件赛的同学们&#xff0c;如果你是大一零基础&#xff0c;目前懵懂中&#xff0c;不知该怎么办&#xff0c;可以看看本博客系列。 每个周末发1个博客&#xff0c;共20周&#xff0c;到明年3月初结束。跟上本博客的节奏&#xff0c;省赛三等奖跑不掉。 每周…

性能强劲又通用!Meta-CoT: 混合问题场景下的自适应思维链推理

©PaperWeekly 原创 作者 | 邹安妮 单位 | 上海交通大学 研究方向 |NLP&#xff0c;大模型推理 大语言模型&#xff08;LLMs&#xff09;通过思维链&#xff08;CoT&#xff09;提示技术&#xff0c;生成中间推理链作为得出答案的依据。然而&#xff0c;当前的 CoT 方法要…

计算机网络-计算机网络体系结构-传输层

目录 一、UDP 二、TCP 特点 首部格式 连接管理 可靠传输 流量控制(点对点) 拥塞控制(全局) 三、拥塞控制算法 慢开始&拥塞避免 快重传&快恢复 功能一&#xff1a;提供进程与进程之间的逻辑通信 功能二&#xff1a;复用和分用 功能三&#xff1a;对收到的报…

文件列表创建工具 Nifty File Lists mac中文版功能特色

Nifty File Lists mac是一款文件列表创建工具&#xff0c;全面的元数据支持&#xff0c;涵盖了从基本文件信息&#xff0c;如文件名、路径、大小、创建和修改日期等等内容。 Nifty File Lists mac功能特色 全面的 元数据支持强大的多线程元数据提取系统涵盖了从基本文件信息&a…

紫光同创FPGA实现HSSTLP高速接口通信,8b/10b编解码数据回环,提供PDS工程源码和技术支持

目录 1、前言免责声明 2、我这里已有的 GT 高速接口解决方案3、设计思路框架HSSTLP详解HSSTLP基本了解HSSTLP之时钟HSSTLP之PCSHSSTLP之PMAHSSTLP之接口说明 硬件设计HSSTLP IP调用和配置 4、PDS工程详解5、上板调试验证并演示6、福利&#xff1a;工程代码的获取 紫光同创FPGA实…

【计算机网络】网络编程 Socket

目录 1.TCP和UDP的区别 2.基于UDP的 Socket API 总结 3.基于TCP的Socket API 服务器程序的问题 网络编程的目的&#xff1a;通过网络&#xff0c;让不同主机之间能够进行通信。 在进行网络编程的时候&#xff0c;需要操作系统提供一组API&#xff0c;也就是Socket API&am…

用Node.js开发基于稳定扩散的AI应用

在本文中&#xff0c;我们将介绍如何构建一个 Web 应用程序&#xff0c;该应用程序使用 ChatGPT 和 Stable Diffusion 为你提供的任何网站描述生成徽标和合适的域名。 推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景 1、介绍 人工智能正在接管世界。 这些技术每天都在震…