【发布时间】:2020-03-26 07:29:02
【问题描述】:
我使用的是网站上的这段代码,但不够准确
const worker1 = createWorker();
const worker2 = createWorker();
await worker1.load();
await worker2.load();
await worker1.loadLanguage("eng");
await worker2.loadLanguage("eng");
await worker1.initialize("eng");
await worker2.initialize("eng");
scheduler.addWorker(worker1);
scheduler.addWorker(worker2);
/** Add 10 recognition jobs */
const {
data: { text }
} = await scheduler.addJob("recognize", image);
这是我正在尝试读取其文本的图像类型:
你看起来简单易行,有时 tesseract 无法阅读它。 是否有更好的替代 tesseract.js 或任何提高准确性的方法?
【问题讨论】:
-
您是否尝试过对输入图像应用一些过滤,以增强对比度,例如或放大它们?我认为获得更高准确性的一种方法是对输入图像进行一些修改。
-
您可以从这篇文章开始:docparser.com/blog/improve-ocr-accuracy 增加对比度、图像锐化、去除噪点是一些基本的图像增强功能,可以帮助您获得更好的准确度结果。
-
此外,您可能需要检查阈值过滤。请参阅此代码,例如:github.com/laurenzcodes/Canvas-Threshold-Effect
-
您还可以深入研究边缘检测算法,例如 Sobel 算法或 Canny 算法。
-
我使用了您的图片的负片版本,效果很好。此外,额外的伽马校正看起来很有希望。
标签: javascript node.js typescript ocr tesseract.js