Как заставить работать пример 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, которая принимает изображение в качестве аргумента и возвращает распознанный текст в виде строки. [...]
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 для изображения не имеет того же домена, что и страница, на которой оно находится.