Я пытаюсь прочитать текст с tesseract.js в узле.
Чтобы ускорить процесс, я бы хотел, чтобы он выводил результаты построчно. Если я правильно понимаю tesseract, он сначала считывает изображение, применяет некоторые изменения, фильтры и т. Д., Чтобы сделать его более читабельным, обнаруживает строки, а затем начинает распознавать текст в этих строках.
Есть ли способ, как я мог бы получить эти строки до того, как он закончит распознавать весь документ, или мне нужно было бы буквально разделить изображение и затем передать каждую строку как изображение для тессеракта?
Чтобы попробовать это, я разделил тестовое изображение вручную и пропустил их через tesseract. Это значительно ускоряет процесс (для моего конкретного варианта использования).
Результат: https://gyazo.com/3e50e40bb7b2f07190c4a2377b65c92d
var Tesseract = require('tesseract.js')
var myImage = [
"1.jpg",
"2.jpg",
"3.jpg",
"4.jpg",
"5.jpg",
"6.jpg",
"7.jpg",
"8.jpg",
"9.jpg"
]
rec(0)
function rec(number){
var thisImage = myImage[number];
Tesseract.recognize(thisImage, {
lang: "eng"
})
.then(function (result) {
console.log("[Line: " + number + "] " + result.text.replace(/(\r\n|\n|\r)/gm, ""));
if(number < 8){
number++;
rec(number)
}
})
}
В случае, если мне придется предварительно разделить изображение, какую библиотеку NodeJS мне следует использовать для обнаружения линий? ImageMagick?
Я нашел пример на python только от того, кто пытался обнаружить строки на изображении:
Разделение строк текста в отсканированном документе
Каков был бы правильный подход для этого?