如何让Ocrad.js示例工作

时间:2014-01-07 03:01:23

标签: javascript jquery ocr

我正在制作一个OCR(光学字符识别)Web应用程序,我找到了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 个答案:

答案 0 :(得分:4)

您不能只将<img>元素传递给OCRAD()函数。

来自Ocrad.js documentation

  

该文件公开了一个全局函数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()函数,则会出现以下错误:

  

错误:参数无效


注意:由于同源策略,如果图像的URL与其所在页面的域名不同,则对context.getImageData()的调用将抛出SecurityError