Google Vision API Document_Text_Detection

时间:2018-12-10 07:41:02

标签: c# .net google-authentication .net-framework-version google-vision

我正在尝试开发C#Google Vision API函数。

该代码应编译为dll,并且应运行以执行以下步骤。

  1. 从图像路径获取图像。
  2. 将图像发送到Google视觉api
  3. 调用文档文本检测功能
  4. 获取返回值(文本字符串值)
  5. 完成

当我运行dll时,它一直给我抛出异常异常错误。我假设问题出在Google凭证上,但不确定...

有人可以帮我这个忙吗?我什至不知道var凭据= GoogleCredential.FromFile(Credential_Path);是调用json文件的正确方法...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Google.Cloud.Vision.V1;
using Google.Apis.Auth.OAuth2;
using Image = Google.Cloud.Vision.V1.Image;


namespace DLL_TEST_NetFramework4._6._1version
{
    public class Class1
    {
        public string doc_text_dection(string GVA_File_Path, string Credential_Path)
        {
            var credential = GoogleCredential.FromFile(Credential_Path);
            //Load the image file into memory
            var image = Image.FromFile(GVA_File_Path);    

            // Instantiates a client
            ImageAnnotatorClient client = ImageAnnotatorClient.Create();

            TextAnnotation text = client.DetectDocumentText(image);
            //Console.WriteLine($"Text: {text.Text}");

            return $"Text: {text.Text}";
            //return "test image...";
        }
    }
}

3 个答案:

答案 0 :(得分:2)

您只需要设置here中提到的环境变量GOOGLE_APPLICATION_CREDENTIALS

答案 1 :(得分:0)

您必须这样在环境变量中提到json文件名。

Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "Your_Json_File_Name.json");

您的代码应如下所示。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Google.Cloud.Vision.V1;
using Google.Apis.Auth.OAuth2;
using Image = Google.Cloud.Vision.V1.Image;


namespace DLL_TEST_NetFramework4._6._1version
{
    public class Class1
    {
        public string doc_text_dection(string GVA_File_Path, string Credential_Path)
        {
            //var credential = GoogleCredential.FromFile(Credential_Path);
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "Your_Json_File_Name.json");
            //Load the image file into memory
            var image = Image.FromFile(GVA_File_Path);    

            // Instantiates a client
            ImageAnnotatorClient client = ImageAnnotatorClient.Create();

            TextAnnotation text = client.DetectDocumentText(image);
            //Console.WriteLine($"Text: {text.Text}");

            return $"Text: {text.Text}";
            //return "test image...";
        }
    }
}

或者您可以通过Credential_Path变量发送它。

有关更多详细信息,请访问Google Vision API Docs

答案 2 :(得分:0)

您需要使用以下代码在控制台中设置环境:

Windows Server: $env:GOOGLE_APPLICATION_CREDENTIALS="File Path"

Linux服务器: export GOOGLE_APPLICATION_CREDENTIALS="File Path"

希望有帮助!