Microsoft 认知服务视觉 API ClientException 错误

2024-04-08

我正在尝试使用视觉认知服务来接收图像的描述,但我的代码总是抛出此异常:

Exception Microsoft.ProjectOxford.Vision.ClientException
HResult=0x80131500
Origine=<Non è possibile valutare l'origine dell'eccezione>
Stack:
in Microsoft.ProjectOxford.Vision.VisionServiceClient.HandleException (Exception exception)
in Microsoft.ProjectOxford.Vision.VisionServiceClient.<SendAsync>b__42_1[TRequest,TResponse](Exception e)
in System.AggregateException.Handle(Func`2 predicate)
in Microsoft.ProjectOxford.Vision.VisionServiceClient.<SendAsync>d__42`2.MoveNext()
in System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
in System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
in Microsoft.ProjectOxford.Vision.VisionServiceClient.<AnalyzeImageAsync>d__21`1.MoveNext()
in System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
in System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
in Microsoft.ProjectOxford.Vision.VisionServiceClient.<AnalyzeImageAsync>d__20.MoveNext()
in System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
in System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
in System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
in CognitiveServices.MainPage.<Button_Clicked>d__1.MoveNext() in C:\Users\manu9\documents\visual studio 2017\Projects\CognitiveServices\CognitiveServices\CognitiveServices\MainPage.xaml.cs: riga 48

这是我的代码:

using Microsoft.ProjectOxford.Vision;
using Microsoft.ProjectOxford.Vision.Contract;
using Plugin.Media;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;

namespace CognitiveServices
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
        }

        private async void Button_Clicked(object sender, EventArgs e)
        {
            var media = Plugin.Media.CrossMedia.Current;
            await media.Initialize();
            var file = await media.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
            {
                SaveToAlbum = false
            });
            image.Source = ImageSource.FromStream(() => file.GetStream());

            var visionClient = new VisionServiceClient("MY_API_KEY");

            var visualFeats = new VisualFeature[]
            {
                VisualFeature.Description, 
                VisualFeature.Faces
            };

            Stream imagestream = file.GetStream();
            imagestream.Seek(0, SeekOrigin.Begin);

            var result = await visionClient.AnalyzeImageAsync(imagestream, visualFeats);
            description.Text = result.Description.Captions.First().Text;

            Debug.WriteLine(result.Description.Captions[0].Text);
            file.Dispose();
        }
    }
}

为什么我总是出现这个异常?我读到有人通过添加类似的内容解决了这个问题imageStream.Seek(0)这是真的吗?


您的 API 密钥很可能与您正在访问的端点不对应。如果你看一下客户端的源代码 https://github.com/Microsoft/Cognitive-Vision-Windows/blob/master/ClientLibrary/VisionServiceClient.cs#L58你会看到默认情况下它会到达美国西部(https://westus.api.cognitive.microsoft.com/vision/v1.0)并且您的密钥可能与另一个区域相对应(就像我的情况一样)。

You can change this by doing new VisionServiceClient(apiKey, apiRoot), where apiRoot is obtained through the Azure Portal:enter image description here

在我的例子中输出的工作代码Satya Nadella wearing glasses and smiling at the camera.

using Microsoft.ProjectOxford.Vision;
using Microsoft.ProjectOxford.Vision.Contract;
using System;
using System.Configuration;
using System.IO;

namespace VisionClient
{
    public class Program
    {
        public static void Main(string[] args)
        {
            AnalyzeImage();
            Console.WriteLine("Press any key to exit...");
            Console.ReadLine();
        }

        private static void AnalyzeImage()
        {
            var apiKey = ConfigurationManager.AppSettings["VisionApiSubscriptionKey"];
            var apiRoot = "https://eastus2.api.cognitive.microsoft.com/vision/v1.0";
            var visionClient = new VisionServiceClient(apiKey, apiRoot);

            var visualFeats = new VisualFeature[]
            {
                VisualFeature.Description,
                VisualFeature.Faces
            };

            Stream imageStream = File.OpenRead("satyaNadella.jpg");

            try
            {
                AnalysisResult analysisResult = visionClient.AnalyzeImageAsync(imageStream, visualFeats).Result;
                foreach(var caption in analysisResult.Description.Captions)
                {
                    Console.WriteLine("Description: " + caption.Text);
                }
            }
            catch (ClientException e)
            {
                Console.WriteLine("Vision client error: " + e.Error.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: " + e.Message);
            }
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Microsoft 认知服务视觉 API ClientException 错误 的相关文章

随机推荐

  • 复制virtualenv文件夹后如何在Cygwin中激活virtualenv

    完整的初学者在这里 尝试构建一个 Flask Web 应用程序 使用 Windows 8 在 Cygwin 中激活我的 python virtualenv 时遇到一些问题 到目前为止我一直在使用 git shell 没有任何问题 我将文件夹
  • React.js:将默认值设置为 prop

    我制作了这个组件来创建一个简单的按钮 class AppButton extends Component setOnClick if this props onClick typeof this props onClick function
  • 在 ASP.NET MVC 3 应用程序中扩展 Windows 身份验证

    经过大量谷歌搜索并阅读了有关如何在 ASP NET 应用程序中管理混合模式身份验证的几种解决方案后 我仍然没有适合我的问题的解决方案 我必须为一堆不同的用户组实现一个 Intranet 应用程序 到目前为止 我一直使用 Windows 身份
  • 无法在 ubuntu 19.04 上安装 libzmq3-dev

    我正在尝试安装libzmq3 dev on 乌班图19 04 使用命令 sudo apt install build essential libsocketcan dev libzmq3 dev 我收到消息 gt Some packages
  • Pentaho Spoon 工具转换顺序

    我正在尝试设计一个 ETL 结构 但我陷入了以下步骤 正如你所看到的 我有 3 个步骤 每个步骤都有一个FK上一步的值 例如TABLE3有一个列外键约束这表明PK值在TABLE2 and TABLE2与 具有相同的关系TABLE1 问题是
  • 如何在我的 Maven 项目中正确包含“org.apache.catalina.filters.SetCharacterEncodingFilter”过滤器?

    我使用 Maven 3 3 和 JBoss 7 1 3 Final Java 6 我想在我的 Web 应用程序中包含一个过滤器 以便所有传入请求数据都将编码为 UTF 8 所以我将其添加到我的 web xml 文件中
  • Powershell CheckedListBox 检查是否在字符串/数组中

    我已经开始学习 Powershell 但在花了几个小时解决一个问题后陷入困境 我可以找到除 Powershell 之外的多种语言的解决方案 我需要对 CheckedListBox 中的每个项目进行检查 该项目与名为的分号分隔字符串中的任何值
  • WPF 中 WinForms TextBox.Validating 事件的等效项

    在 WinForms 中 我可以处理 Validated 事件 以便在用户更改 TextBox 中的文本后执行某些操作 与 TextChanged 不同 Validated 不会在每次字符更改时触发 它仅在用户完成后触发 WPF 中是否有任
  • 我到底必须在 viewDidUnload 中做什么?

    我倾向于在 dealloc 中释放我的东西 现在 iPhone OS 3 0 引入了这个有趣的 viewDidUnload 方法 他们说 释放所有保留的子视图 主要视图 例如自我我的出口 零 因此 当视图控制器的视图从内存中启动时 view
  • Pandas - 按一列分组,按另一列排序,从第三列获取值

    我想采用 pandas 数据框 按一列对其进行分组 按另一列对其进行排序 并从第三列中获取第一个元素并填充原始数据框 这是我原来的 df 我将按 col 1 分组 按 col 2 升序 排序 并从 col 3 中取出第一个元素并用结果填充
  • 对角线穿过视图

    根据某些条件 我必须对角剪切列表单元格 为此 我使用以下代码制作了对角线可绘制图像 对角线 xml
  • 沿多边形边界随机采样点

    I am trying to randomly sample points on a polygon boundary made of arbitrary number of points The polygon consist of a
  • C++中的默认参数

    考虑以下 int foo int x int z 0 int foo int x int y int z 0 如果我像这样调用这个函数 foo 1 2 编译器如何知道使用哪一个 它不会 因此这个例子不会编译干净 它会给你一个编译错误 它会给
  • Cardview 涟漪效应不起作用

    最小 SDK 为 21 当我单击回收器适配器中的卡片视图时 不会发生连锁反应 只会转到下一个屏幕 recyclerview 位于片段内
  • JDBC 无法加载数据源的工厂类

    我已经遇到这个问题好几天了 但没有设法解决它 我使用的是 tomcat 7 0 我完全无法连接 mysql 数据库 我正在编写的应用程序是一个使用eclipse IDE的jsp动态网站 TomCat 7 启动时出现此错误 WARNING F
  • 为什么 Z3 在这个简单的输入上返回“未知”?

    这是输入 set option auto config false set option mbqi false declare sort T6 declare sort T7 declare fun set23 T7 T7 Bool ass
  • 在 Aptana Studio 3 中禁用 CSS 验证

    有人知道如何使用 Aptana Studio 3 禁用 CSS 验证吗 在版本 3 0 4 中 即使完全完成后 警告仍然存在禁用 W3C CSS 验证器 https stackoverflow com questions 6652793 h
  • 在最近的 JVM 中,不可见引用仍然是一个问题吗?

    我正在读书Java 平台性能 http java sun com docs books performance 1st edition html JPAppGC fm html 遗憾的是 自从我最初提出这个问题以来 该链接似乎已经从互联网上
  • Tensorflow中GRU单元的解释?

    以下是 Tensorflow 的代码GRUCell单元显示了当先前的隐藏状态与序列中的当前输入一起提供时获得更新的隐藏状态的典型操作 def call self inputs state scope None Gated recurrent
  • Microsoft 认知服务视觉 API ClientException 错误

    我正在尝试使用视觉认知服务来接收图像的描述 但我的代码总是抛出此异常 Exception Microsoft ProjectOxford Vision ClientException HResult 0x80131500 Origine