public void StartStreaming(bool recogniseFacialFeatures, Point location) { if (FSDKCam.OpenVideoCamera(ref cameraName, ref cameraHandle) != FSDK.FSDKE_OK) { MessageBox.Show(Constants.CAMERA_OPEN_ERROR, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); Application.Exit(); } FaceRecognitionController faceRecognitionController = new FaceRecognitionController(); faceRecognitionController.Initialize(location); cameraWorking = true; while (cameraWorking) { Application.DoEvents(); Int32 imageHandle = 0; FSDKCam.GrabFrame(cameraHandle, ref imageHandle); FSDK.CImage image = new FSDK.CImage(imageHandle); Image frameImage = image.ToCLRImage(); faceRecognitionController.Update(image, frameImage, recogniseFacialFeatures); currentPictureBox.Image = frameImage; GC.Collect(); } faceRecognitionController.Stop(); FSDKCam.CloseVideoCamera(cameraHandle); FSDKCam.FinalizeCapturing(); }
public void InitializeCamera(PictureBox pictureBox) { faceRecognitionController = new FaceRecognitionController(); currentPictureBox = pictureBox; if (FSDK.FSDKE_OK != FSDK.ActivateLibrary(Constants.LICENCE_KEY)) { MessageBox.Show(Constants.ERROR_ACTIVATING_FACESDK, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); Application.Exit(); } FSDK.InitializeLibrary(); FSDKCam.InitializeCapturing(); string[] cameraList; int cameraCount; FSDKCam.GetCameraList(out cameraList, out cameraCount); if (cameraCount == 0) { MessageBox.Show(Constants.NO_CAMERA_ERROR, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); Application.Exit(); } cameraName = cameraList[0]; FSDKCam.GetVideoFormatList(ref cameraName, out formatList, out cameraCount); int videoFormat = 0; currentPictureBox.Width = formatList[videoFormat].Width; currentPictureBox.Height = formatList[videoFormat].Height; }
public async Task RecognizeWithStreamAsync_WithoutStream_ReturnsBadRequest() { var mockLogger = Mock.Of <ILogger <FaceRecognitionController> >(); var mockFaceClientService = Mock.Of <IFaceClientService>(); var controller = new FaceRecognitionController(mockFaceClientService, mockLogger); var actionResult = await controller.RecognizeWithStreamAsync(default);
public async Task RecognizeWithStreamAsync_WithCorrectInput_ReturnsOk() { var list = new List <RecognizedCandidateDto> { new RecognizedCandidateDto { Confidence = 0.54, PersonId = $"{Guid.NewGuid()}" }, new RecognizedCandidateDto { Confidence = 0.99, PersonId = $"{Guid.NewGuid()}" }, new RecognizedCandidateDto { Confidence = 0.89, PersonId = $"{Guid.NewGuid()}" } }; var mockLogger = Mock.Of <ILogger <FaceRecognitionController> >(); var mockFaceClientService = new Mock <IFaceClientService>(); mockFaceClientService .Setup(service => service.RecognizeWithStreamAsync(It.IsNotNull <Stream>())) .Returns(() => Task.FromResult((IList <RecognizedCandidateDto>)list)); using var stream = File.OpenRead("jrtest.jpg"); var controller = new FaceRecognitionController(mockFaceClientService.Object, mockLogger); var actionResult = await controller.RecognizeWithStreamAsync(stream); Assert.NotNull(actionResult); var okObjectResult = Assert.IsAssignableFrom <OkObjectResult>(actionResult); var result = Assert.IsAssignableFrom <IList <RecognizedCandidateDto> >(okObjectResult.Value); list.Should().NotBeEmpty() .And.BeEquivalentTo(result); }
public async Task RecognizeWithStreamAsync_WithUnrelatedStream_ReturnsOk() { var mockLogger = Mock.Of <ILogger <FaceRecognitionController> >(); var mockFaceClientService = new Mock <IFaceClientService>(); mockFaceClientService .Setup(service => service.RecognizeWithStreamAsync(It.IsNotNull <Stream>())); using var stream = new MemoryStream(); var controller = new FaceRecognitionController(mockFaceClientService.Object, mockLogger); var actionResult = await controller.RecognizeWithStreamAsync(stream); Assert.NotNull(actionResult); var okObjectResult = Assert.IsAssignableFrom <OkObjectResult>(actionResult); var result = Assert.IsAssignableFrom <IList <RecognizedCandidateDto> >(okObjectResult.Value); Assert.NotNull(result); Assert.Empty(result); }
public static UnityContainer RegisterComponents() { var container = new UnityContainer(); container.RegisterSingleton <DataSources.IDataSource>( new InjectionFactory(o => { return(new LocalDataSource()); })); container.RegisterSingleton <IAsyncDataSource>( new InjectionFactory(o => { var dbContext = new LibraryDbContext(); return(new DbDataSource(dbContext)); })); container.RegisterSingleton <IUserRepository>(new InjectionFactory(o => { var dataSource = container.Resolve <IAsyncDataSource>(); return(new UserRepository(dataSource)); })); container.RegisterSingleton <IBookRepository>(new InjectionFactory(o => { var dataSource = container.Resolve <IAsyncDataSource>(); return(new BookRepository(dataSource)); })); container.RegisterSingleton <IReviewRepository>(new InjectionFactory(o => { var dataSource = container.Resolve <IAsyncDataSource>(); return(new ReviewRepository(dataSource)); })); container.RegisterSingleton <ILibraryData>(new InjectionFactory(o => { var userRepository = container.Resolve <IUserRepository>(); var bookRepository = container.Resolve <IBookRepository>(); return(new LibraryData(userRepository, bookRepository)); })); //Controllers container.RegisterType <UserRegistrationController>(new InjectionFactory(o => { var userRepository = container.Resolve <IUserRepository>(); var inputValidator = container.Resolve <IInputValidator>(); return(new UserRegistrationController(userRepository, inputValidator)); })); container.RegisterType <BarcodeScannerController>(new InjectionFactory(o => { var takenBookPresenter = container.Resolve <TakenBookPresenter>(); var bookPresenter = container.Resolve <BookPresenter>(); var scannerPresenter = container.Resolve <ScannerPresenter>(); return(new BarcodeScannerController(takenBookPresenter, bookPresenter, scannerPresenter)); })); container.RegisterType <UserSignInController>(new InjectionFactory(o => { var userRepository = container.Resolve <IUserRepository>(); var controller = new UserSignInController(userRepository); controller.OnLogin += userRepository.Login; return(controller); })); container.RegisterType <TakenBookController>(new InjectionFactory(o => { var takenBookPresenter = container.Resolve <TakenBookPresenter>(); var bookPresenter = container.Resolve <BookPresenter>(); var scannerPresenter = container.Resolve <ScannerPresenter>(); return(new TakenBookController(takenBookPresenter, bookPresenter, scannerPresenter)); })); container.RegisterType <ReturnBookController>(new InjectionFactory(o => { var takenBookPresenter = container.Resolve <TakenBookPresenter>(); return(new ReturnBookController(takenBookPresenter)); })); container.RegisterType <BookController>(new InjectionFactory(o => { var bookPresenter = container.Resolve <BookPresenter>(); return(new BookController(bookPresenter)); })); container.RegisterType <BookHistoryController>(new InjectionFactory(o => { var bookPresenter = container.Resolve <BookPresenter>(); return(new BookHistoryController(bookPresenter)); })); container.RegisterType <HashtagController>(new InjectionFactory(o => { var dataSource = container.Resolve <IAsyncDataSource>(); var hashtagRepo = new HastagRepository(dataSource); return(new HashtagController(hashtagRepo)); })); container.RegisterType <GenreController>(new InjectionFactory(o => { var dataSource = container.Resolve <IAsyncDataSource>(); var genreRepo = new GenreRepository(dataSource); return(new GenreController(genreRepo)); })); container.RegisterType <FaceDetectionController>(new InjectionFactory(o => { return(new FaceDetectionController()); })); container.RegisterType <ImageSavingController>(new InjectionFactory(o => { var dataSource = container.Resolve <IAsyncDataSource>(); return(new ImageSavingController(dataSource)); })); container.RegisterType <FaceRecognitionController>(new InjectionFactory(o => { var dataSource = container.Resolve <IAsyncDataSource>(); var controller = new FaceRecognitionController(dataSource); controller.OnLogin += container.Resolve <IUserRepository>().Login; return(controller); })); container.RegisterType <ReviewController>(new InjectionFactory(o => { var reviewRepository = container.Resolve <IReviewRepository>(); var reviewPresenter = container.Resolve <ReviewPresenter>(); return(new ReviewController(reviewPresenter, reviewRepository)); })); // Helpers & Presenters container.RegisterType <TakenBookPresenter>(new InjectionFactory(o => { var bookRepository = container.Resolve <IBookRepository>(); var warning = container.Resolve <BookTakingWarning>(); var userPresenter = container.Resolve <UserPresenter>(); //return new TakenBookPresenter(bookRepository, warning, userPresenter); return(new TakenBookPresenter(bookRepository)); })); container.RegisterType <BookPresenter>(new InjectionFactory(o => { var bookRepository = container.Resolve <IBookRepository>(); return(new BookPresenter(bookRepository)); })); container.RegisterType <ReviewPresenter>(new InjectionFactory(o => { var reviewRepository = container.Resolve <IReviewRepository>(); return(new ReviewPresenter(reviewRepository)); })); container.RegisterType <UserPresenter>(new InjectionFactory(o => { var userRepository = container.Resolve <IUserRepository>(); return(new UserPresenter(userRepository)); })); container.RegisterType <IInputValidator>(new InjectionFactory(o => { var userRepository = container.Resolve <IUserRepository>(); return(new InputValidator(userRepository)); })); return(container); }