public async Task LocateFacesAsync(BaseImage image) { Condition.Requires(image, nameof(image)).IsNotNull(); var scales = new List <double>(); var minl = (double)Math.Min(image.Width, image.Height); var m = 1.0 * PNetSize / MinimunSize; var factorCount = 0; minl = minl * m; while (minl >= 12) { scales.Add(m * Math.Pow(Factor, factorCount)); minl = minl * Factor; factorCount++; } foreach (var scale in scales) { int newWidth = (int)Math.Ceiling(image.Width * scale); int newHeight = (int)Math.Ceiling(image.Height * scale); float[,,] normalizedValues; using (var rgba = image.ToColorPixelsArray(newWidth, newHeight)) { normalizedValues = rgba.NormalizeBatch(); } } await Task.CompletedTask.ConfigureAwait(false); }