首页 > 其他分享 >前端实现图片文字识别并提取

前端实现图片文字识别并提取

时间:2023-08-13 12:24:07浏览次数:35  
标签:function const img text 前端 reader 提取 识别 图片

需求:

其实这个需求还是挺常见的,经常会看到一些app或网页拍一张图片或者上传一张图片则需要提取图片中的数字或文字,这里我采用了 tesseract.js 实现。这个前端插件的好处是字母和数字的识别率挺高,但对中文的识别略差,根据需求可进行取舍。

物料:

一张带有数字的图片。

 

 效果:

代码:

index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Tesseract.js 示例</title>
</head>
<body>
  <input type="file" id="imageInput" accept="image/*">
  <pre id="outputText"></pre>

  <script src="https://cdn.jsdelivr.net/npm/tesseract.js"></script>
  <script src="./index.js"></script>
</body>
</html>

index.js

// 获取元素
const imageInput = document.getElementById('imageInput');
const outputText = document.getElementById('outputText');

// 当选择图片时
imageInput.addEventListener('change', handleImageUpload);

function handleImageUpload(event) {
  const file = event.target.files[0];

  if (file) {
    const reader = new FileReader();
    reader.onload = function(e) {
      const img = new Image();
      img.src = e.target.result;
      img.onload = function() {
        extractTextFromImage(img);
      };
    };
    reader.readAsDataURL(file);
  }
}

function extractTextFromImage(image) {
  Tesseract.recognize(
    image,
    'chi_sim', // 设置语言为中文
    { logger: info => console.log(info) } // 日志输出,可选
  ).then(({ data: { text } }) => {
    console.log(text);
    outputText.textContent = '提取的文字:\n\n' + text;
  }).catch(error => {
    console.error('发生错误:', error);
  });
}

 

标签:function,const,img,text,前端,reader,提取,识别,图片
From: https://www.cnblogs.com/zion0707/p/17626380.html

相关文章

  • 使用LSH 进行特征提取
    局部敏感哈希(LSH)通常用于近似最近邻算法(ANN)操作(向量搜索)。LSH的特性也可以在以矢量为输入的神经网络模型中得到利用(例如,各种的音频、视频和文本嵌入等内容信号)。通常情况下,特定领域模型中输入的流形是复杂的(非i.i.d)。这种复杂性使得使用计算密集型操作的多层感知机来......
  • 前端开发工程师需要掌握哪些算法?
    一个程序员一生中可能会邂逅各种各样的算法,但总有那么几种,是作为一个程序员一定会遇见且大概率需要掌握的算法。作为一名前端开发工程师,今天就通过这个话题和文章来聊聊前端开发工程师需要掌握的算法有哪些呢。......
  • 基于GMM高斯混合模型的语音信息身份识别算法的matlab仿真
    1.算法理论概述一、引言     语音信息身份识别是指通过声音信号对个体进行身份识别的过程。目前,语音信息身份识别已经成为语音处理领域的一个热门研究方向。在语音信息身份识别中,高斯混合模型(GMM)是一种被广泛应用的方法。本文将详细介绍基于GMM的语音信息身份识别算法的实......
  • 前端JavaScript高频面试题
    一、js基本概念1.HTML语义化理解?得分点:语义化标签,利于页面结构化,利于没有css页面也可读,利于SEO,利于代码可读标准答案:在使用html标签构建页面时,避免大篇幅的使用无语句的标签2.说一说盒模型?得分点:标准盒模型、怪异盒模型(box-sizing:border-box;)、盒模型大小标准答案:标......
  • 某公司笔试题 - 提取不重复的整数(附python代码)
    #输入一个int型整数,按照从右往左的阅读顺序,返回一个不含重复数字的新的整数。保证输入的整数最后一位不是0.#数据范围:1<=n<=10**8#输入一个整数并去掉末尾的0num_str=input("输入一个整数:").rstrip('0')ifint(num_str)>=1andint(num_str)<=10**8:#把输入的......
  • 【面试题】前端面试十五问
    数组去重遍历旧数组,然后拿着旧数组元素去查询新数组,如果该元素在新数组里面没有出现过,我们就添加,否则不添加先封装一个函数,uniquefunctionunique(arr){varnewArr=\[]for(vari=0;i<arr.length;i++){if(newArr.indexOf(arr\[i]===-1){newArr.push(arr\[i])}}return......
  • 精细解析中文公司名称:智能分词工具助力地名、品牌名、行业词和后缀提取
    精细解析中文公司名称:智能分词工具助力地名、品牌名、行业词和后缀提取中文公司名称分词工具,支持公司名称中的地名,品牌名(主词),行业词,公司名后缀提取。对公司名文本解析,识别并提取地名(place)、品牌名(brand)、行业词(trade)、公司名后缀词(suffix)。[x]补充中国三级地名,优化地名......
  • 精细解析中文公司名称:智能分词工具助力地名、品牌名、行业词和后缀提取
    精细解析中文公司名称:智能分词工具助力地名、品牌名、行业词和后缀提取中文公司名称分词工具,支持公司名称中的地名,品牌名(主词),行业词,公司名后缀提取。对公司名文本解析,识别并提取地名(place)、品牌名(brand)、行业词(trade)、公司名后缀词(suffix)。补充中国三级地名,优化地名提......
  • 关闭ESlint/路径起别名/配置前端代理/引入模块报错
    怎么关闭ESlint语法检查(不建议)vue-cli创建的项目,在vue.config.js​文件里面//vue.config.jsconst{defineConfig}=require('@vue/cli-service');module.exports=defineConfig({lintOnSave:false,})vite创建的项目,在vite.config.js​文件里面import......
  • 08年度的佳作——《真・恋姫†無双》玩后感(蜀国篇)+AGTH真正提取大法
    评:和前作相比,可以说是容量倍增,乐趣倍增,感动倍增,如果说本作是一部完整的“女性三国演义”,那么前作充其量只能算一个蜀线加强版。只要是AVG玩家,本作都是不容错过的。关于下载和汉化:原来3DM是说要汉化恋姬无双,后来出事了也就没消息(具体看http://3dmgame.chnren.co......