gpt4 book ai didi

c# - Google Vision API - 分析图像序列

转载 作者:太空宇宙 更新时间:2023-11-03 15:03:52 26 4
gpt4 key购买 nike

让我来揭露你的问题:

我目前正在使用 Visual Studio Community 2017 版进行开发。我制作了一个使用 Google API 分析图像内容的 Windows 窗体。我设法让它适用于一张图片,所以过程是:我启动程序,Windows 出现,我按下“分析图像”按钮,然后它在文本框中打印标签检测的结果。

这部分效果很好。

但是现在,我想分析一个文件的所有图像,所以我从 5 张图像开始,只是为了尝试。所以我做了一个 foreach 循环,并用“1.jpg”、“2.jpg”等重命名我的图片,直到“5.jpg”。这是代码:

    private void Button1_Click(object sender, EventArgs e)
{


textBox1.Text = "";

for (int i = 1; i < 6; i++)
{

int number = i;
textBox1.Text = "Image number : " + number + "\r\n";

var image = Google.Cloud.Vision.V1.Image.FromFile("C:\\temp\\sequence\\" + number + ".jpg");
var client = ImageAnnotatorClient.Create();
var response = client.DetectLabels(image);

foreach (var annotation in response)
{
textBox1.Text += annotation.Description + "\r\n";
}
textBox1.Text = "Next image processing.... \r\n";
}
}

当我按下“分析按钮”( Button1 )时,程序打印“图片 1:”然后我必须等待几秒钟,然后它会打印“下一步图像处理...”,并且再也不会打印任何东西。

有什么想法吗?是因为我必须清除 TextBox 才能在其中重新写入吗?

有人知道我的问题吗? :(

在此先感谢您的帮助!

最佳答案

我在这里没有发现任何重大技术问题。一些观察:客户端创建最好在 for 循环之外完成。无需一次又一次地创建它的实例。在分配文本时最好做 +=从您的引用代码中,文本的最终结果将始终是“下一个图像处理...”但是,如果您认为代码没有针对 i = 2 的下一个值执行,这在代码中是不太可能的。您可以调试它以至少确保它是否被调用。我在我的环境中使用了我自己的 ImageAnnotatorClient 实例。下面的代码表示非常适合我。希望这有帮助

            textBox1.Text = "";
var client = ImageAnnotatorClient.Create();
try
{
for (int i = 1; i < 6; i++)
{

int number = i;
textBox1.Text += "Image number : " + number + "\r\n";

var image = Google.Cloud.Vision.V1.Image.FromFile("C:\\temp\\sequence\\" + number + ".jpg");

var response = client.DetectLabels(image);

foreach (var annotation in response)
{
textBox1.Text += annotation.Description + "\r\n";
}
textBox1.Text += "Next image processing.... \r\n";
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}

关于c# - Google Vision API - 分析图像序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44718306/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com