javascript - 如何使用 javascript 在 microsoft azure 分析图像 API 中发布图像而不是 URL?

标签 javascript computer-vision azure-cognitive-services

我正在使用此代码使用 Microsoft Azure API 进行图像分析 https://learn.microsoft.com/en-in/azure/cognitive-services/computer-vision/quickstarts/javascript#AnalyzeImage .但它需要一个 URL 作为输入。

我想从本地计算机而不是 URL 上传图像。

需要帮助。

最佳答案

         $(document).ready(function () {

             //Step 1. Hook into the myFile input file change event



            var subKey = '[your key]';

             function makeblob(b64Data, contentType, sliceSize) {
                 contentType = contentType || '';
                 sliceSize = sliceSize || 512;

                 var byteCharacters = atob(b64Data);
                 var byteArrays = [];

                 for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
                     var slice = byteCharacters.slice(offset, offset + sliceSize);

                     var byteNumbers = new Array(slice.length);
                     for (var i = 0; i < slice.length; i++) {
                         byteNumbers[i] = slice.charCodeAt(i);
                     }

                     var byteArray = new Uint8Array(byteNumbers);

                     byteArrays.push(byteArray);
                 }

                 var blob = new Blob(byteArrays, { type: contentType });
                 return blob;
             }

             $('#myImage').change(function () {

                 //Load everything in
                 var reader = new FileReader();
                 var file = this.files[0];
               //  var mb = $(this).serializeObject();
                 console.log(file);
                 reader.onload=  function() {
                     var resultData = this.result;

                     
                   
                   
                 //     console.log(resultData);
                     
                          
                     resultData = resultData.split(',')[1];
                     
                     processImage(resultData);
                    // processImage(mb);
                 };

                
                 reader.readAsDataURL(file);

             });

             processImage = function(binaryImage) {
           
          
            
                 
              //   var uriBase = "https://westcentralus.api.cognitive.microsoft.com/vision/v1.0/analyze";
                 var uriBase = "https://eastus.api.cognitive.microsoft.com/vision/v1.0/analyze";

                 //    // Request parameters.
                 var params = {
                     "visualFeatures": "Categories,Description,Color",
                     "details": "",
                     "language": "en",
                 };

                 $.ajax({
                     url: "https://eastus.api.cognitive.microsoft.com/vision/v1.0/analyze?visualFeatures=Categories&language=en",
                     
                    method: "POST",
                    type: "POST",
                     beforeSend: function (xhrObj) {
                         xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key", subKey);
                        

                     },
                     contentType: "application/octet-stream",
                     mime: "application/octet-stream",   
                     data: makeblob(binaryImage, 'image/jpeg'),
                     cache: false,
                     processData: false
               
                   
                 }) .done(function(data) {
            // Show formatted JSON on webpage.
            $("#responseTextArea").val(JSON.stringify(data, null, 2));
        })

             }
         });
        

         
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myForm">
    <input type="file" id="myImage" />
    <input type="submit" />
    <textarea  type="text" rows="5" cols="50" id="responseTextArea" />
    </form>

关于javascript - 如何使用 javascript 在 microsoft azure 分析图像 API 中发布图像而不是 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48201395/

相关文章:

javascript - 将 Microsoft 的 Emotion API 添加到 HTML 网站

javascript - 如何通过它的 id 删除我的 ul 中的所有 li?

javascript - 使用可重复的 Javascript 函数来验证多个单选按钮组

python - 给定形成网格的白线图像,如何使用 opencv 获取内部形状的掩码?

Opencv createsamples实用程序: do tight bounding boxes substitute uncropped images for positive samples?

azure - 认知服务(LUIS、QnA 制造商)无法从 vNet 访问

javascript - 如何在 tsconfig.json 中排除以 '.spec.ts' 结尾的文件

javascript - 如何通过 Swagger 或 Ajax 将数据发送到 Presence Insights 连接器 API?

opencv - 锐化边缘

Azure 认知服务 : Where are the missing Custom Vision Performance Statistics?