@page "/client"
@using DevExpress.Blazor
@using OpenCvSharp
@using squirrowse.core
@using squirrowse.web.Cognitive
@using squirrowse.web.Common
@using squirrowse.web.Data
live
-
Fetch Data from azure
@*-
Face
-
Upper Body
-
Lower Body
*@
@inject SaveVideo save
@inject IAzureCV azureCv
@inject VideoQ Video
@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 = frame.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();
}
}
}