Node.js Azure OCR - 使用本地文件(blob)

时间:2017-09-14 13:41:34

标签: javascript node.js azure ocr azure-cognitive-services

我正在使用Azure OCR服务来获取图像的文本(https://docs.microsoft.com/de-de/azure/cognitive-services/Computer-vision/quickstarts/javascript#OCR)。

到目前为止,所有内容都已启动并运行,但现在我想使用本地文件而不是已上传的文件。

// Display the image.
        var sourceImageUrl = document.getElementById("inputImage").value;
        document.querySelector("#sourceImage").src = sourceImageUrl;

        // Perform the REST API call.
        $.ajax({
            url: uriBase + "?" + $.param(params),

            // Request headers.
            beforeSend: function(jqXHR){
                jqXHR.setRequestHeader("Content-Type","application/json");
                jqXHR.setRequestHeader("Ocp-Apim-Subscription-Key", subscriptionKey);
            },

            type: "POST",

            // Request body.
            data: '{"url": ' + '"' + sourceImageUrl + '"}',
        })

        .done(function(data) {
            // Show formatted JSON on webpage.
            $("#responseTextArea").val(JSON.stringify(data, null, 2));
        })

我试过

1 个答案:

答案 0 :(得分:2)

您发布的代码是JavaScript,而不是Node.js.

以下是使用带有 request 模块的Node.js分析本地图像的示例:

var request = require('request');
var fs = require('fs');

var options = {
  url: 'https://westus.api.cognitive.microsoft.com/vision/v1.0/analyze',
  qs: {
    visualFeatures: 'Categories', 
    details: '', 
    language: 'en'
  },
  headers: {
    'Content-Type': 'application/octet-stream',
    'Ocp-Apim-Subscription-Key': '<key>'
  },
  body: fs.readFileSync('./Shaki_waterfall.jpg')
};

request.post(options, function (error, response, body) {
    console.log(body);
});