Как заставить работать пример Ocrad.js

Я делаю веб-приложение для оптического распознавания символов (OCR) и обнаружил библиотеку JavaScript Ocrad.js, которая именно то, что я искал, но не могу заставить ее работать. Кто-нибудь может мне помочь?

Вот мой код:

<!doctype html>
<html>
    <head>
        <script src="ocrad.js"></script>
        <script src="http://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js"></script>
        <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
        <script>
            $(document).ready(function() {
                var image = document.getElementById('image');
                var string = OCRAD(image);
                alert(string);
            });
        </script>
    </head> 
    <body>
        <img src="img.jpg" id="image">
    </body>
</html>

1 ответ

Вы не можете просто передать <img> элемент к OCRAD() функция.

Из документации Ocrad.js:

Этот файл предоставляет одну глобальную функцию OCRAD, которая принимает изображение в качестве аргумента и возвращает распознанный текст в виде строки. [...] image Аргумент может быть элементом canvas, экземпляром Context2D или экземпляром ImageData.

Попробуй это:

$(document).ready(function() {
    var $img = $('#image');

    var context = document.createElement('canvas').getContext('2d');
    context.drawImage($img[0], 0, 0);

    var imageData = context.getImageData(0, 0, $img.width(), $img.height());

    var string = OCRAD(imageData);
    alert(string);
});

Но вам, возможно, придется поставить width а также height атрибуты на вашем <img> элемент для того, чтобы это работало.


Если вы попытаетесь передать <img> элемент к OCRAD() функция, вы получите следующую ошибку:

необработанное исключение: 5264272 - Перехват исключений отключен, это исключение не может быть перехвачено. Скомпилируйте с -s DISABLE_EXCEPTION_CATCHING=0 или DISABLE_EXCEPTION_CATCHING=2, чтобы поймать.

Если вы попытаетесь передать объект jQuery в OCRAD() функция, вы получите следующую ошибку:

Ошибка: неверные аргументы


Примечание. Из-за единой политики происхождения вызов context.getImageData() бросит SecurityError если URL для изображения не имеет того же домена, что и страница, на которой оно находится.

Другие вопросы по тегам