Tesseract.Js仅使用英语吗?

时间:2019-05-14 17:42:12

标签: javascript tesseract tesseract.js

我使用以下示例代码在浏览器中测试库

<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 :(得分:0)

我认为问题在于tesseract.js无法下载* .traineddata,也许您可​​以尝试删除langPath: './tessdata'并使用默认的langPath。而且,如果您想进行脱机版本,则可以检查此存储库:

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