首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Tesseract.js中使用光学字符识别从图像中提取数字?

如何在Tesseract.js中使用光学字符识别从图像中提取数字?
EN

Stack Overflow用户
提问于 2019-10-29 20:43:39
回答 2查看 2.7K关注 0票数 4

如何在Tesseract.js中使用Javascript和OCR从图像中提取数字,然后将数字相加。

我可以使用下面的代码提取单词中的数字,但我不知道如何将它们转换为数组,然后将四个数字相加。假设我想在手机上扫描的数字图像是4567。

如果我将文本从console.log更改为数字,它不会显示数字4567

代码语言:javascript
复制
var myImage = document.getElementById('userImage');

Tesseract.recognize(myImage).then(function(result) {
  console.log(result.text);
})
代码语言:javascript
复制
<script src='https://cdn.rawgit.com/naptha/tesseract.js/1.0.10/dist/tesseract.js'></script>
<img id="userImage" src="https://via.placeholder.com/728x90.png?text=4567" />

EN

回答 2

Stack Overflow用户

发布于 2019-11-21 01:38:48

只是创建了一个示例或简单的实现,虽然不是最好的代码,但很明显你可以参考这个https://github.com/Mondal10/image-scanner

票数 3
EN

Stack Overflow用户

发布于 2019-10-29 21:31:54

代码语言:javascript
复制
function startProcessing() {
  let img = document.getElementById('ocr');
  Tesseract.recognize(
    img,
    'eng', {
      logger: m => console.log(m)
    }
  ).then((res) => res).then(({
    data
  }) => {
    console.log(data.text, typeof(data.text)); // returns type as string
    console.log(Number(data.text), parseInt(data.text)); // converting string to number

    // Array with number i.e '4567' --> [4,5,6,7]
    let convertedNumber = [...data.text].map((num) => Number(num));
    // Calculating the sum of the numbers in convertedNumber Array
    let sum = convertedNumber.reduce((acc, curr) => acc + curr);
    console.log(':::SUM:::', sum);
  })
}
代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <script src='https://unpkg.com/tesseract.js@v2.0.0-beta.1/dist/tesseract.min.js'></script>
  <script src="index.js"></script>
</head>

<body>
  <img id="ocr" onload="startProcessing()" width="500px" height="300px" src="./ocr1.png" alt="random">
  <!-- image downloaded from link http://podam.org/ocr/ocr.html -->
  <!-- Make sure you download the image and save it locally if you try to fetch it from url you will get CORS error -->
</body>

</html>

Tesseract.recognize(myImage).then(function(result){ <img id="userImage" src="ocr.png"/> var myImage= document.getElementById('userImage');Tesseract.recognize(myImage).then(function(result){userImage(result.text);

(result.text);})

注意:如果我们只扫描数字,这个解决方案是有效的,如果它是两者的组合,那么可能需要一些更多的条件来处理字符串+数字的情况,也要确保图像足够清晰,对比度更高

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58607728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档