1.下载tesseract,github上那个我没搞明白,我是百度搜了个安装包装上的
2.装好后配一下环境变量就可以用了,命令行输入tesseract -v进行测试
3.上两步都是必须的,否则使用模块会报错大概是<?>的bug
4.在项目中引入
const tesseract = require("node-tesseract");
5.到这步就差不多了,附一个官方的demo
tesseract.process(__dirname + '/path/to/image.jpg',function(err, text) {
if(err) {
console.error(err);
} else {
console.log(text);
}
});
// Recognize German text in a single uniform block of text and set the binary path
var options = {
l: 'deu',
psm: 6,
binary: '/usr/local/bin/tesseract'
};
tesseract.process(__dirname + '/path/to/image.jpg', options, function(err, text) {
if(err) {
console.error(err);
} else {
console.log(text);
}
});
再附一个我用来识别验证码的
tesseract.process("code.png", { l: "eng", psm: 9 }, function(err, text) {
if (err) {
console.error(err);
} else {
console.log(text);
}
});
6.大功告成
ps:如果使用过程中出了这种bug
TypeError [ERR_INVALID_CALLBACK]: Callback must be a function
at makeCallback (fs.js:136:11)
at Object.unlink (fs.js:943:14)
at C:\Users\Administrator\Desktop\cust_lib\node_modules\_node-tesseract@0.2.7@node-tesseract\lib\tesseract.js:97:24
at FSReqWrap.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:53:3)
那就手动打开C:\Users\Administrator\Desktop\cust_lib\node_modules\_node-tesseract@0.2.7@node-tesseract\lib\tesseract.js:97:24这里,将fs.unlink(files[0]);变更为fs.unlink(files[0], function() {});