Javascript Tesseract-保护工人
我有一个javascript应用程序,可以读取发票。它的工作非常完美,但我想提高它的性能一点 应用程序的工作方式是这样的。有“下一步”和“提交”按钮。之后,加载一个新图像并调用函数doOcr。在doOCR的每个实例中,都会创建一个必须花费时间的worker。我正试图找出如何将worker移到函数之外,这样就不需要每次都创建它。代码如下。想法Javascript Tesseract-保护工人,javascript,ocr,Javascript,Ocr,我有一个javascript应用程序,可以读取发票。它的工作非常完美,但我想提高它的性能一点 应用程序的工作方式是这样的。有“下一步”和“提交”按钮。之后,加载一个新图像并调用函数doOcr。在doOCR的每个实例中,都会创建一个必须花费时间的worker。我正试图找出如何将worker移到函数之外,这样就不需要每次都创建它。代码如下。想法 //ocr the image and fill values function doOCR(){(async () => { wor
//ocr the image and fill values
function doOCR(){(async () => {
worker = Tesseract.createWorker();
await worker.load();
await worker.loadLanguage('eng');
await worker.initialize('eng');
const values = [];
for (let i = 0; i < rectangles.length; i++) {
const { data: { text } } = await worker.recognize(imgFile, { rectangle: rectangles[i] });
values.push(text);
}
console.log(values);
//calculate and display result
dir = values[0].split(' ');
$("#inDir").val(dir[1]);
//get invoice number
$("#inVendor").val(dir[0]);
//get invoice #
var str = values[0];
var n = str.indexOf("Invoice:", 0);
var n1 = str.indexOf("Invoice", n+5);
invoice = str.substr(n+9, n1-n-9);
$("#inInvoice").val(invoice);
await worker.terminate();
$('#status').attr('src','check.png').show();
})()};
//ocr图像和填充值
函数doOCR(){(异步()=>{
worker=Tesseract.createWorker();
等待worker.load();
wait worker.loadLanguage('eng');
等待工作进程。初始化('eng');
常量值=[];
for(设i=0;i
谢谢。我想我是通过将函数的上半部分更改为:
function doOCR(){(async () => {
if (typeof(worker) == "undefined") {
worker = Tesseract.createWorker();
await worker.load();
await worker.loadLanguage('eng');
await worker.initialize('eng');
}
const values = [];
for (let i = 0; i < rectangles.length; i++) {
const { data: { text } } = await worker.recognize(imgFile, { rectangle: rectangles[i] });
values.push(text);
}
console.log(values);
函数doOCR(){(异步()=>{
if(工作人员类型)=“未定义”){
worker=Tesseract.createWorker();
等待worker.load();
wait worker.loadLanguage('eng');
等待工作进程。初始化('eng');
}
常量值=[];
for(设i=0;i
并删除了wait.worker.terminate();我想我是通过将函数的上半部分更改为:
function doOCR(){(async () => {
if (typeof(worker) == "undefined") {
worker = Tesseract.createWorker();
await worker.load();
await worker.loadLanguage('eng');
await worker.initialize('eng');
}
const values = [];
for (let i = 0; i < rectangles.length; i++) {
const { data: { text } } = await worker.recognize(imgFile, { rectangle: rectangles[i] });
values.push(text);
}
console.log(values);
函数doOCR(){(异步()=>{
if(工作人员类型)=“未定义”){
worker=Tesseract.createWorker();
等待worker.load();
wait worker.loadLanguage('eng');
等待工作进程。初始化('eng');
}
常量值=[];
for(设i=0;i
并删除wait.worker.terminate()