@page "/client" @using DevExpress.Blazor @using OpenCvSharp @using squirrowse.core @using squirrowse.web.Cognitive @using squirrowse.web.Common @using squirrowse.web.Data

live

@inject SaveVideo save @inject IAzureCV azureCv @inject VideoQ Video @inject Detection detect @code { private readonly Filters filter = new Filters(false, false, false); private string _imgSrc; private string _tempcogni; private byte[] buffer; private bool fetchDataFromAzure = true; private readonly Frame Frametest = new Frame(); private Mat tempory = new Mat(); public Action Update(Action set) { return v => { set(v); InvokeAsync(StateHasChanged); }; } protected override async Task OnInitializedAsync() { using var temp = new Mat(480, 640, MatType.CV_8UC3, new Scalar(0, 0, 100)); Cv2.PutText(temp, "No clients".ToUpper(), new Point(240, 320), HersheyFonts.HersheyComplex, 0.9f, Scalar.Yellow); var base64T = Convert.ToBase64String(temp.ToBytes()); while (true) { try { using var frame = Video.getFrame(); tempory = Frametest.CopyMat(frame); var face = detect.DetectTypes(frame, filter); buffer = face.ToBytes(); var base64 = Convert.ToBase64String(buffer); _imgSrc = $"data:image/gif;base64,{base64}"; Cv2.WaitKey(1); await Task.Delay(1000 / 33); StateHasChanged(); } catch (Exception e) { _imgSrc = $"data:image/gif;base64,{base64T}"; await Task.Delay(1000 / 33); StateHasChanged(); } } } private async Task GetDataFromAzure() { while (fetchDataFromAzure) { var azrespons = await azureCv.GetObjects(tempory); var azureFrame = azureCv.DrawResults(tempory, azrespons); var b_tempcogni = Convert.ToBase64String(azureFrame.Result.ToBytes()); _tempcogni = $"data:image/gif;base64,{b_tempcogni}"; await Task.Delay(TimeSpan.FromSeconds(5)); StateHasChanged(); } } }