public ImageDocumentDetectionService(
     IImagePreProcessor[] preProcessors,
     IImageExtractor extractor,
     IContourDetector[] contourDetectors,
     IResultScorer[] scorers,
     IImagePostProcessor[] postProcessors)
 {
     _preProcessors    = preProcessors;
     _extractor        = extractor;
     _contourDetectors = contourDetectors;
     _scorers          = scorers;
 }
Example #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ImageService"/> class.
        /// </summary>
        /// <param name="loggerFactory">The logger factory.</param>
        /// <param name="configuration">The configuration.</param>
        /// <param name="fileSystemStrategy">The file system strategy.</param>
        /// <param name="appInfoFactory">The application information factory.</param>
        /// <param name="jsonWriter">The JSON writer.</param>
        /// <param name="imageExtractor">The image extractor.</param>
        /// <param name="gifImageWriter">The GIF image writer.</param>
        /// <exception cref="ArgumentNullException">
        /// loggerFactory
        /// or
        /// configuration
        /// or
        /// fileSystemStrategy
        /// or
        /// appInfoFactory
        /// or
        /// jsonWriter
        /// or
        /// imageExtractor
        /// or
        /// gifImageWriter
        /// </exception>
        public ImageService(
            ILoggerFactory loggerFactory,
            IAmiConfigurationManager configuration,
            IFileSystemStrategy fileSystemStrategy,
            IAppInfoFactory appInfoFactory,
            IDefaultJsonWriter jsonWriter,
            IImageExtractor imageExtractor,
            IGifImageWriter gifImageWriter)
        {
            logger = loggerFactory?.CreateLogger <ImageService>();
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(loggerFactory));
            }

            this.configuration = configuration;
            if (this.configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            this.fileSystemStrategy = fileSystemStrategy;
            if (this.fileSystemStrategy == null)
            {
                throw new ArgumentNullException(nameof(fileSystemStrategy));
            }

            this.appInfoFactory = appInfoFactory;
            if (this.appInfoFactory == null)
            {
                throw new ArgumentNullException(nameof(appInfoFactory));
            }

            this.jsonWriter = jsonWriter;
            if (this.jsonWriter == null)
            {
                throw new ArgumentNullException(nameof(jsonWriter));
            }

            this.imageExtractor = imageExtractor;
            if (this.imageExtractor == null)
            {
                throw new ArgumentNullException(nameof(imageExtractor));
            }

            this.gifImageWriter = gifImageWriter;
            if (this.gifImageWriter == null)
            {
                throw new ArgumentNullException(nameof(gifImageWriter));
            }
        }
        public MotionSensorStartup(MotionSensorSetup setup)
        {
            //setup the extractor
            imageExtractor = new ImageExtractor(setup.camera);
            imageExtractor.framerateBroadcast += new ImageExtractor.FramerateBroadcastEvent(FramerateBroadcastEventHandler);
            imageExtractor.asyncrohous = true;

            //set up the save file object
            imageSaver = new ImageSaver(setup.imageSaveLocation, "movement", setup.camera.cameraId);
            imageSaver.saveToFileServer = true; //setup.saveImagesToFileServer;
            imageSaver.saveToDatabase = setup.saveImagesToDatabase;
            imageSaver.ParentDirectory = setup.imageSaveLocation;
            captureId = imageSaver.captureId;

            //set up the database object
            if(setup.saveImagesToDatabase)
            {
                database = new CaptureDb(ConfigurationManager.ConnectionStrings["LOCALDB"].ConnectionString);
                database.CreateCaptureSession(captureId, imageSaver.SaveDirectory);
                detectionId = database.CreateDetectionSession(captureId);
                imageSaver.detectionId = detectionId;
            }

            //setup the motion sensor
            motionSensor = new MotionSensor_2a();
            motionSensor.settings = new MotionSensorSettings();
            motionSensor.settings.LoadDefaults();

            motionSensor.motionDetected += new MotionSensor_2.MotionDetected(imageSaver.ImageCreatedAsync);

            //create the validator 
            imageValidator = new ImageValidator();
            imageValidator.ListenForImages(imageExtractor);
            imageValidator.imageValidated += new ImageValidator.ImageValidatedEvent(motionSensor.ImageCreatedAsync);//subscribe to events from the validator

            //setup the alarms
            alarms = new List<IAlarm>();
            if (setup.emailAlarm != null)
            {
                alarms.Add(setup.emailAlarm as EmailAlarm);
                imageSaver.imageCreated += new ImageSaver.ImageSavedEvent(setup.emailAlarm.ImageExtracted);
            }

            imageExtractor.Run();

        }
        public MotionSensorStartup(MotionSensorSetup setup)
        {
            //setup the extractor
            imageExtractor = new ImageExtractor(setup.camera);
            imageExtractor.framerateBroadcast += new ImageExtractor.FramerateBroadcastEvent(FramerateBroadcastEventHandler);
            imageExtractor.asyncrohous         = true;

            //set up the save file object
            imageSaver = new ImageSaver(setup.imageSaveLocation, "movement", setup.camera.cameraId);
            imageSaver.saveToFileServer = true; //setup.saveImagesToFileServer;
            imageSaver.saveToDatabase   = setup.saveImagesToDatabase;
            imageSaver.ParentDirectory  = setup.imageSaveLocation;
            captureId = imageSaver.captureId;

            //set up the database object
            if (setup.saveImagesToDatabase)
            {
                database = new CaptureDb(ConfigurationManager.ConnectionStrings["LOCALDB"].ConnectionString);
                database.CreateCaptureSession(captureId, imageSaver.SaveDirectory);
                detectionId            = database.CreateDetectionSession(captureId);
                imageSaver.detectionId = detectionId;
            }

            //setup the motion sensor
            motionSensor          = new MotionSensor_2a();
            motionSensor.settings = new MotionSensorSettings();
            motionSensor.settings.LoadDefaults();

            motionSensor.motionDetected += new MotionSensor_2.MotionDetected(imageSaver.ImageCreatedAsync);

            //create the validator
            imageValidator = new ImageValidator();
            imageValidator.ListenForImages(imageExtractor);
            imageValidator.imageValidated += new ImageValidator.ImageValidatedEvent(motionSensor.ImageCreatedAsync);//subscribe to events from the validator

            //setup the alarms
            alarms = new List <IAlarm>();
            if (setup.emailAlarm != null)
            {
                alarms.Add(setup.emailAlarm as EmailAlarm);
                imageSaver.imageCreated += new ImageSaver.ImageSavedEvent(setup.emailAlarm.ImageExtracted);
            }

            imageExtractor.Run();
        }
Example #5
0
        public SettingsController(IUsersManager usersManager, IUsersFactory usersFactory, IImageExtractor imageExtractor)
        {
            Guard.WhenArgument <IUsersManager>(usersManager, "Users manager cannot be null.")
            .IsNull()
            .Throw();

            Guard.WhenArgument <IUsersFactory>(usersFactory, "Users factory cannot be null.")
            .IsNull()
            .Throw();

            Guard.WhenArgument <IImageExtractor>(imageExtractor, "Image extractor cannot be null.")
            .IsNull()
            .Throw();

            this.usersManager   = usersManager as IManager;
            this.usersFactory   = usersFactory;
            this.imageExtractor = imageExtractor;
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="ImageService"/> class.
 /// </summary>
 /// <param name="configuration">The configuration.</param>
 /// <param name="archiveReader">The archive reader.</param>
 /// <param name="archiveExtractor">The archive extractor.</param>
 /// <param name="fileSystemStrategy">The file system strategy.</param>
 /// <param name="appInfoFactory">The application information factory.</param>
 /// <param name="jsonWriter">The JSON writer.</param>
 /// <param name="imageExtractor">The image extractor.</param>
 /// <param name="gifImageWriter">The GIF image writer.</param>
 public ImageService(
     IAppConfiguration configuration,
     IArchiveReader archiveReader,
     IArchiveExtractor archiveExtractor,
     IFileSystemStrategy fileSystemStrategy,
     IAppInfoFactory appInfoFactory,
     IDefaultJsonWriter jsonWriter,
     IImageExtractor imageExtractor,
     IGifImageWriter gifImageWriter)
 {
     this.configuration      = configuration ?? throw new ArgumentNullException(nameof(configuration));
     this.archiveReader      = archiveReader ?? throw new ArgumentNullException(nameof(archiveReader));
     this.archiveExtractor   = archiveExtractor ?? throw new ArgumentNullException(nameof(archiveExtractor));
     this.fileSystemStrategy = fileSystemStrategy ?? throw new ArgumentNullException(nameof(fileSystemStrategy));
     this.appInfoFactory     = appInfoFactory ?? throw new ArgumentNullException(nameof(appInfoFactory));
     this.jsonWriter         = jsonWriter ?? throw new ArgumentNullException(nameof(jsonWriter));
     this.imageExtractor     = imageExtractor ?? throw new ArgumentNullException(nameof(imageExtractor));
     this.gifImageWriter     = gifImageWriter ?? throw new ArgumentNullException(nameof(gifImageWriter));
 }
 public void ListenForImages(IImageExtractor imgClass)
 {
     imgClass.imageCreated += new ImageExtractor.ImageCreatedEvent(FileCreated);
 }
 public void ListenForImages(IImageExtractor imgClass)
 {
     imgClass.imageCreated += new ImageExtractor.ImageCreatedEvent(FileCreated);
 }