Я использую метод ниже, чтобы обнаружить текст в изображении. Но одно выполнение этого метода приводит к 9 транзакциям на моей информационной панели Azure. Может кто-нибудь подсказать, если я что-то упустил? или что-то не так с кодом?
public async Task<IActionResult> ConvertToText(string url)
{
string subscriptionKey = "jfh3879rhf4389terhkjy86";
ComputerVisionClient computerVision = new ComputerVisionClient(
new ApiKeyServiceClientCredentials(subscriptionKey),
new System.Net.Http.DelegatingHandler[] { });
// Specify the Azure region
computerVision.Endpoint = "https://westcentralus.api.cognitive.microsoft.com";
if (!Uri.IsWellFormedUriString(url, UriKind.Absolute))
{
return null;
}
TextRecognitionMode textRecognitionMode = TextRecognitionMode.Printed;
int numberOfCharsInOperationId = 36;
// Start the async process to recognize the text
RecognizeTextHeaders textHeaders =
await computerVision.RecognizeTextAsync(url, textRecognitionMode);
// Retrieve the URI where the recognized text will be
// stored from the Operation-Location header
string operationId = textHeaders.OperationLocation.Substring(
textHeaders.OperationLocation.Length - numberOfCharsInOperationId);
TextOperationResult result =
await computerVision.GetTextOperationResultAsync(operationId);
// Wait for the operation to complete
int i = 0;
int maxRetries = 10;
while ((result.Status == TextOperationStatusCodes.Running ||
result.Status == TextOperationStatusCodes.NotStarted) && i++ < maxRetries)
{
Console.WriteLine("Server status: {0}, waiting {1} seconds...", result.Status, i);
await Task.Delay(1000);
result = await computerVision.GetTextOperationResultAsync(operationId);
}
// Display the results
var lines = result.RecognitionResult.Lines;
string details = "";
foreach (Line line in lines)
{
details += line.Text + Environment.NewLine;
}
return Content(details);
}
Спасибо.