Stream & Azure API Vision - PullRequest
       3

Stream & Azure API Vision

0 голосов
/ 26 февраля 2020

Я пытаюсь использовать 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, но он не работает.

Спасибо за помощь

1 Ответ

1 голос
/ 26 февраля 2020

После вызова метода IsBlack вы должны вернуть поток в позицию 0:

var streamImage = this.printScreenService.CaptureRegionToStream(screenRegion);
var isBlack = await this.IsBlack(streamImage);

if (isBlack)
{
    return new OcrModel
    {
        IsBlack = true,
        Texts = new[] { "" }
    };
} 
streamImage.Position = 0; //this line
var localFileOcrResult = await this.client.RecognizePrintedTextInStreamAsync(true, streamImage, OcrLanguages.Fr);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...