Google Vision API - разделить результаты распознавания текста на разные строки?

Я пытаюсь использовать Google Vision API в C# для изображения с текстом в несколько строк. Я хочу, чтобы каждая строка была отдельной строкой, но API помещает все это в 1 строку.

Я пробовал фильтровать по заглавным буквам в начале, но некоторые строки имеют заглавные буквы в начале каждого слова, так что это не всегда только в начале каждой строки.

Как я могу изменить его так, чтобы он занимал каждую строку отдельно? Поскольку все строки в изображении находятся в одном и том же месте каждый раз, могу ли я обрезать их, используя C#, чтобы получить каждую строку отдельно?

Спасибо:)

1 ответ

Похоже, вы используете режим "TEXT_DETECTION", а не режим "DOCUMENT_TEXT_DETECTION" API Google Vision.

https://cloud.google.com/vision/docs/ocr Здесь указываются различия между ними.

С https://cloud.google.com/vision/docs/detecting-fulltext

Вот как должен выглядеть ваш код, если вы используете API "DOCUMENT_TEXT_DETECTION".

var image = Image.FromFile(filePath);
var client = ImageAnnotatorClient.Create();
var response = client.DetectDocumentText(image);
foreach (var page in response.Pages)
{
    foreach (var block in page.Blocks)
    {
        foreach (var paragraph in block.Paragraphs)
        {
            Console.WriteLine(string.Join("\n", paragraph.Words));
        }
    }
}

Надеюсь, это поможет!

редактировать

Я сделал POST https://vision.googleapis.com/v1/images:annotate?key=[API_KEY] с телом

{
  "requests": [
    {
      "image": {
        "source": {
          "imageUri": "https://i.imgur.com/5t34img.png"
        }
      },
      "features": [
        {
          "type": "DOCUMENT_TEXT_DETECTION"
        }
      ]
    }
  ]
}

и получил этот ответ действительный ответ. https://gist.github.com/kle622/02d4d573c2c8bc08beac25a26b81096e Я могу помочь больше, если вы отправите обновленный код:)

Другие вопросы по тегам