如何在Tesseract.js中使用Javascript和OCR从图像中提取数字,然后将数字相加。
我可以使用下面的代码提取单词中的数字,但我不知道如何将它们转换为数组,然后将四个数字相加。假设我想在手机上扫描的数字图像是4567。
如果我将文本从console.log更改为数字,它不会显示数字4567
var myImage = document.getElementById('userImage');
Tesseract.recognize(myImage).then(function(result) {
console.log(result.text);
})<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" />
发布于 2019-11-21 01:38:48
只是创建了一个示例或简单的实现,虽然不是最好的代码,但很明显你可以参考这个https://github.com/Mondal10/image-scanner
发布于 2019-10-29 21:31:54
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);
})
}<!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);})
注意:如果我们只扫描数字,这个解决方案是有效的,如果它是两者的组合,那么可能需要一些更多的条件来处理字符串+数字的情况,也要确保图像足够清晰,对比度更高
https://stackoverflow.com/questions/58607728
复制相似问题