Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Tesseract Node.js-使用;“朗”;选择导致崩溃_Javascript_Node.js_Ocr_Tesseract - Fatal编程技术网

Javascript Tesseract Node.js-使用;“朗”;选择导致崩溃

Javascript Tesseract Node.js-使用;“朗”;选择导致崩溃,javascript,node.js,ocr,tesseract,Javascript,Node.js,Ocr,Tesseract,Tesseract.js的基本用法与英语不同,会导致整个系统崩溃: var options = { lang: 'deu', }; var image = require("path").join(__dirname, 'lib/images/ocr-test-text.png'); var Tesseract = require('tesseract.js') Tesseract.recognize(image, options) .progress(function (info

Tesseract.js的基本用法与英语不同,会导致整个系统崩溃:

var options = {
    lang: 'deu',
};

var image = require("path").join(__dirname, 'lib/images/ocr-test-text.png');

var Tesseract = require('tesseract.js')

Tesseract.recognize(image, options)
.progress(function (info) {
    console.log(info);
})
.then(function (data) {
    console.log('done', data);
    process.exit();
})
触发以下错误:

> node index.js
{ status: 'loading tesseract core' }
{ status: 'loaded tesseract core' }
{ status: 'initializing tesseract', progress: 0 }
pre-main prep time: 68 ms
{ status: 'initializing tesseract', progress: 1 }
{ status: 'downloading deu.traineddata.gz',
  loaded: 116,
  progress: 0.00011697604814572795 }
events.js:182
      throw er; // Unhandled 'error' event
      ^

Error: incorrect header check
    at Gunzip.zlibOnError (zlib.js:146:15)
Github问题:

知道发生了什么吗

更新: 按照第一个答案的说明,下载“deu”traineddata后,出现以下错误:

export TESSDATA_PREFIX=/opt/TESSDATA && node get-text-from-image.js /opt/app/out/image.png
params [ '/opt/app/out/image.png' ]
progress { status: 'loading tesseract core' }
progress { status: 'loaded tesseract core' }
progress { status: 'initializing tesseract', progress: 0 }
pre-main prep time: 62 ms
progress { status: 'initializing tesseract', progress: 1 }
progress { status: 'loading deu.traineddata', progress: 0 }
progress { status: 'loading deu.traineddata', progress: 1 }
progress { status: 'initializing api', progress: 0 }
Failed loading language 'deu'
Tesseract couldn't load any languages!
progress { status: 'initializing api', progress: 0.3 }
progress { status: 'initializing api', progress: 0.6 }
progress { status: 'initializing api', progress: 1 }
progress { status: 'recognizing text', progress: 0 }
AdaptedTemplates != NULL:Error:Assert failed:in file ../classify/adaptmatch.cpp, line 190

/opt/app/node_modules/tesseract.js-core/index.js:4
function f(a){throw a;}var h=void 0,i=!0,j=null,k=!1;function aa(){return function(){}}function ba(a){return function(){return a}}var n,Module;Module||(Module=eval("(function() { try { return TesseractCore || {} } catch(e) { return {} } })()"));var ca={},da;for(da in Module)Module.hasOwnProperty(da)&&(ca[da]=Module[da]);var ea=i,fa=!ea&&i;
              ^
abort() at Error
    at Na (/opt/app/node_modules/tesseract.js-core/index.js:32:26)
    at Object.ka [as abort] (/opt/app/node_modules/tesseract.js-core/index.js:507:108)
    at _abort (/opt/app/node_modules/tesseract.js-core/index.js:373:173)
    at $L (/opt/app/node_modules/tesseract.js-core/index.js:383:55709)
    at jpa (/opt/app/node_modules/tesseract.js-core/index.js:388:22274)
    at lT (/opt/app/node_modules/tesseract.js-core/index.js:387:80568)
    at mT (/opt/app/node_modules/tesseract.js-core/index.js:387:80700)
    at Array.BS (/opt/app/node_modules/tesseract.js-core/index.js:387:69011)
    at bP (/opt/app/node_modules/tesseract.js-core/index.js:383:110121)
    at jT (/opt/app/node_modules/tesseract.js-core/index.js:387:80280)
If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.

它无法打开deu.traineddata.gz的包-不知道为什么。您可能希望自己下载该文件并尝试手动压缩它。不过,这不是政府建议的方式;你还可以试试别的

在运行node.js的机器上下载语言文件,并将它们放在某处

在环境中,确保变量
TESSDATA\u PREFIX
指向该位置。例如,您可以将它们放在
/opt/tessdata
中。如果这样做,您可以如下设置
TESSDATA\u前缀

export TESSDATA_PREFIX=/opt/tessdata

再试一次;这一次,它不应该试图自行下载和解包。

谢谢!我尝试了你的第二个建议-下载并设置env var,但这会输出一个不同的错误。你是否确实将文件放入了
/opt/tessdata
?我的意思是作为一个例子,你应该用
/opt/tessdata
代替你实际放置它们的目录。很抱歉造成混淆,我编辑了我的答案。