Tesseract.Js только английский? - PullRequest
0 голосов
/ 14 мая 2019

Я использую следующий пример кода для проверки библиотеки в broswer

<html>
    <head>
        <meta content="text/html;charset=utf-8" http-equiv="Content-Type">
        <script src='https://unpkg.com/tesseract.js@2.0.0-alpha.4/dist/tesseract.min.js'></script>
    </head>
    <body>
        <input type="file" id="file">
        <input type="button" id="go_button" value="Run" />
        <output id="list"></output>
        <div id="ocr_results"> </div>
        <div id="ocr_status"> </div>

        <script>
            var MICR_CHARACTERS = '0123456789abcd';

            const { TesseractWorker } = Tesseract;
            const worker = new TesseractWorker({
                langPath: "./tessdata/",
                tessedit_debug_fonts: 1,
                tessedit_char_whitelist: MICR_CHARACTERS, });

            function handleFileSelect(evt) {
                var files = evt.target.files; // FileList object

                // files is a FileList of File objects. List some properties.
                var output = [];
                for (var i = 0, f; f = files[i]; i++) {
                    worker.recognize(f, "ara", {
                        langPath: "./tessdata/",
                        tessedit_debug_fonts: 1,
                        tessedit_char_whitelist: MICR_CHARACTERS,
                    }).then(function(result) {
                        document.getElementById("ocr_results").innerText = result.text;
                    }).progress(function(result) {
                        document.getElementById("ocr_status").innerText = result["status"] + " (" + (result["progress"] * 100) + "%)";
                    });
                }
            }

            document.getElementById('file').addEventListener('change', handleFileSelect, false);
        </script>
    </body>
</html>

Я играл со вторым параметром функции recognize, для выборки из https://github.com/naptha/tesseract.js/blob/master/examples/browser/demo.html это должно означать код языка. Но я пробовал разные значения, похоже, что работает только eng. Все остальные значения из https://github.com/naptha/tesseract.js/blob/master/docs/tesseract_lang_list.md приводят к зависанию приложения в браузере, навсегда отображая следующее сообщение.

загрузка языка обученных данных (0%)

enter image description here

1 Ответ

0 голосов
/ 04 июня 2019

Я думаю, что проблема в том, что tesseract.js не может загрузить * .traineddata, возможно, вы можете попробовать удалить langPath: './tessdata' и использовать langPath по умолчанию. И если вы хотите сделать автономную версию, вы можете проверить этот репозиторий:

https://github.com/jeromewu/tesseract.js-offline

...