コード例 #1
0
        public void RespectSettingsChange()
        {
            var image = new Image <Gray, byte>(10, 10);

            for (var i = 0; i < image.Width; i++)
            {
                for (var j = 0; j < image.Height; j++)
                {
                    image[i, j] = new Gray(255);
                }
            }

            var detector = new PeopleDetector(DetectionSettings.Default, logger.Object);

            detector.OnNext(image);

            Assert.True(detector.PeopleDetected);

            detector.Settings = new DetectionSettings(1.1);
            detector.Reset();

            detector.OnNext(image);

            Assert.False(detector.PeopleDetected);
        }
コード例 #2
0
        public void SetMaskToNullOnReset()
        {
            var detector = new PeopleDetector(new DetectionSettings(1), logger.Object);

            detector.OnNext(new Image <Gray, byte>(1, 1));

            detector.Reset();
            Assert.Null(detector.Mask);
        }
コード例 #3
0
        public void SetMaskToNullWhenStreamErrorsOut()
        {
            var detector = new PeopleDetector(new DetectionSettings(1), logger.Object);

            detector.OnNext(new Image <Gray, byte>(1, 1));

            detector.OnError(new System.Exception());
            Assert.Null(detector.Mask);
        }
コード例 #4
0
        public void SetMaskToNullWhenStreamEnds()
        {
            var detector = new PeopleDetector(new DetectionSettings(1), logger.Object);

            detector.OnNext(new Image <Gray, byte>(1, 1));

            detector.OnCompleted();
            Assert.Null(detector.Mask);
        }
コード例 #5
0
        public void NotifyWhenPeopleNotDetected()
        {
            var propertiesChanged = new List <string>();
            var detector          = new PeopleDetector(new DetectionSettings(1), logger.Object);

            detector.PropertyChanged += (_, e) => propertiesChanged.Add(e.PropertyName);

            detector.OnNext(new Image <Gray, byte>(1, 1));
            Assert.Contains(propertiesChanged, s => nameof(IPeopleDetector.PeopleDetected).Equals(s));
        }
コード例 #6
0
        public void NotDetectPresenceIfMaskIsBlack()
        {
            var image = new Image <Gray, byte>(10, 10);

            for (var i = 0; i < image.Width; i++)
            {
                for (var j = 0; j < image.Height; j++)
                {
                    image[i, j] = new Gray(0);
                }
            }

            var detector = new PeopleDetector(DetectionSettings.Default, logger.Object);

            detector.OnNext(image);

            Assert.False(detector.PeopleDetected);
        }