【问题标题】:JavaScript text recognition and OCR on <canvas> [closed]<canvas> 上的 JavaScript 文本识别和 OCR [关闭]
【发布时间】:2013-03-05 16:33:04
【问题描述】:

我找到了一个可以识别手写数学方程式的网络应用程序:

http://webdemo.visionobjects.com/equation.html?locale=default

我想知道是否有人知道实现此机制的应用程序或教程或开源项目,因为从这个 webapp 获取它真的很复杂。

注意:我只需要将画布中绘制的方程式翻译到输入文本框中即可。

【问题讨论】:

  • 超酷的发现。看起来他们有一些后端代码将坐标转换为乳胶和 json 的值。

标签: javascript html5-canvas ocr text-recognition


【解决方案1】:

【讨论】:

    【解决方案2】:

    Google Cloud Vision是一个非常准确的OCR服务,它是free for up to 1000 requests per month。通过REST API 也很容易使用。在下面的 sn-p 中,困难的部分是从用户那里获取图像并将其编码为 Base64。

    var GCVUrl = 'https://vision.googleapis.com/v1/images:annotate?key=XXX';
    // Enable the Cloud Vision API and get a key - see
    // https://cloud.google.com/vision/docs/quickstart
    var input = document.querySelector('input[type=file]');
    var fileReader = new FileReader();
    
    input.onchange = function (event) {
    
      var file = event.target.files[0];
    
      fileReader.onload = function(fileLoadedEvent) {
        var GCVRequest = {
          requests: [{
            image: {
              content: fileLoadedEvent.target.result.split(',')[1]
              // must discard `data:image/png;base64,`
            },  
            features: [{type: 'TEXT_DETECTION'}]
          }]
        };
    
        $.ajax({
          type: 'POST',
          url: GCVUrl,
          dataType: 'json',
          contentType: 'application/json',
          data: JSON.stringify(GCVRequest),
          success: function (data) {
            var texts;
            if (texts = data.responses[0].textAnnotations) {
              alert(texts[0].description);
            } else {
              alert('No text was recognized');
            }
          },
          error: function(jqXhr, textStatus, error) {
            alert('XHR error: ' + jqXhr.responseJSON.error.message);
          }
        });
    
      };
    
      fileReader.readAsDataURL(file);
    
    };
    <script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
    <input type="file" accept="image/*">

    【讨论】:

    • 请注意,您现在需要一个结算帐户和预算才能避免出现 403 错误。我也分裂';base64,',而不仅仅是逗号。我想用它解决的事情(可能是异步等待和转译器)是将多个文件映射到请求,然后处理多个响应。
    【解决方案3】:

    有几个知名 OCR 库的 emscripten.js 端口,例如 OCRAD.jsGOCR

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-26
      • 2021-08-18
      • 2019-02-24
      • 2015-09-17
      • 2013-02-17
      • 1970-01-01
      相关资源
      最近更新 更多