Пример #1
0
        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);
        }