Я пытаюсь использовать Azure API Vision для чтения текста на изображении, и он работает безупречно. Но после добавления небольшого кода, чтобы определить, было ли мое изображение черным (без текста), я получил сообщение от Azure API: « Bad Request ». Когда я не хочу использовать свою маленькую функцию для обнаружения черного, она снова работает.
Я предполагаю, что это потому, что мой поток преобразуется в другой объект, но я не знаю, какой объект ...
Это мой код:
var streamImage = this.printScreenService.CaptureRegionToStream(screenRegion);
var isBlack = await this.IsBlack(streamImage);
if (isBlack)
{
return new OcrModel
{
IsBlack = true,
Texts = new[] { "" }
};
}
var localFileOcrResult = await this.client.RecognizePrintedTextInStreamAsync(true, streamImage, OcrLanguages.Fr);
-----
private bool IsBlack(Stream stream)
{
var image = new Bitmap(Image.FromStream(stream));
for (var h = 0; h < image.Height; h++)
{
for (var w = 0; w < image.Width; w++)
{
var color = image.GetPixel(w, h);
if ((color.R != color.G || color.G != color.B || color.R != color.B) && color.A != 0)
{
return false;
}
}
}
return true;
}
Я пытался использовать поток CopyToAsyn c, но он не работает.
Спасибо за помощь