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 Я могу помочь больше, если вы отправите обновленный код:)