我正在制作一个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>
答案 0 :(得分:4)
您不能只将<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()
函数,则会出现以下错误:
错误:参数无效
注意:由于同源策略,如果图像的URL与其所在页面的域名不同,则对context.getImageData()
的调用将抛出SecurityError
。