javascript - 如何在nodejs中使用Tesseract.recognize

标签 javascript node.js npm tesseract

我想做一个 OCR 程序,但我在声明“Tesseract.recognize”方法时遇到了一些问题

这是我的代码:

const express = require('express');

const fs= require('fs');

const multer = require('multer');

const Tesseract = require('Tesseract.js');

const app = express();

// app.use(bodyParser.urlencoded({extended: true}))

const PORT = process.env.PORT | 5000;   

var Storage = multer.diskStorage({
    destination: function (req, file, callback) {
      callback(null, 'images')
    },
    filename: function (req, file, callback) {
      callback(null, file.orignalname);
    }
});
var upload = multer({
 storage: Storage 
}).array('image', 3);
//route
app.post('/', (req, res) => {});

app.post('/upload', (req, res) => {
    console.log(req.file);
    upload(req, res , err => {
        if (err) {
            console.log(err);
            return res.send('somthing went wrong');
        }
        return res.send('file uploaded successfully');
    });
});

var image = fs.readFileSync(__dirname + '/images/cv.jpg', 
    {
        encoding:null
    });

Tesseract.recognize(image)
    .progress(function(p) {
        console.log('progress', p);
    })
    .then(function(result) {
        res.send('result', result);
    });

app.listen(PORT, () => {
    console.log('Server running on PORT ${PORT}')
});

这是我的最终结果:

.progress(function(p) {
     ^

TypeError: Tesseract.recognize(...).progress is not a function
    at Object.<anonymous> (C:\Users\de\Desktop\MR.Azmani Project\ANGULAR\ocr\server.js:46:6)
    at Module._compile (internal/modules/cjs/loader.js:1133:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
    at Module.load (internal/modules/cjs/loader.js:977:32)
    at Function.Module._load (internal/modules/cjs/loader.js:877:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
    at internal/main/run_main_module.js:18:47
[nodemon] app crashed - waiting for file changes before starting...

这就是在此过程中终端中的结果应该是什么样子 enter image description here

这是终端的最终结果

enter image description here

谢谢

最佳答案

.progress在 tesseract.js 的版本 2 中被删除(有一篇关于 here 的博客文章。版本 1 仍在 Github here 上,并且可能仍然有效,因此您可以 npm i <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="9ce8f9efeff9eefdffe8b2f6efdcadb2acb2ada5" rel="noreferrer noopener nofollow">[email protected]</a> 来获得您期望的行为,或者查看当前版本的文档和 examples 以更新 v2 的代码。

关于javascript - 如何在nodejs中使用Tesseract.recognize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65835056/

相关文章:

javascript - 如何将toggleClass与相同类别的div一起使用但不影响其他div

javascript - 在node js中像全局变量一样访问回调之外的变量

javascript - 在 Node.js 中,setTimeout 可靠吗?

mysql - 对每个 mysql 查询结果字段运行一个循环

node.js - { [错误 : Command failed: ] killed: false, 代码 : 1, 信号:空 }

node.js - 在Dockerfile中安装Node.js和NPM

javascript - react-pdf-js - 未捕获( promise )e {name : "InvalidPDFException", message: "Invalid PDF structure"}

javascript - 在使用 jstree 重命名之前双击以编辑节点

javascript - 将多个对象传递给 Handlebars 模板 - MongoDB、node.js、mongoskin

npm - Semver 版本控制 - 使用插入符号 "^"更新包