private async void AddFace() { if (SelectedImage == -1) { return; } if (string.IsNullOrWhiteSpace(UsernameText)) { return; } var selectedImage = PreviewImages[SelectedImage]; var addedFaceData = await RecognitionData.InsertFace(selectedImage.Original, selectedImage.Grayframe, UsernameText); if (addedFaceData.FaceId != -1) { ResultText = $"Success: ID {addedFaceData.FaceId}"; PreviewImages.Clear(); PreviewHeaderVisible = false; UsernameText = ""; } else { ResultText = "Error!"; } await Task.Delay(3000); ResultText = ""; }
private void OnRecognition(IntPtr data) { /* Custom Marshalling */ RecognitionData data2 = new RecognitionData(); data2.timeStamp = Marshal.ReadInt64(data, 0); data2.grammar = Marshal.ReadInt32(data, 8); data2.duration = Marshal.ReadInt32(data, 12); Int64 addr = data.ToInt64() + 16; for (int i = 0; i < NBEST_SIZE; i++) { Marshal.PtrToStructure(new IntPtr(addr), data2.scores[i]); addr += Marshal.SizeOf(typeof(NBest)); } handler.onRecognition(data2); }
private void OnRecognition(IntPtr data) { /* Custom Marshalling */ RecognitionData data2 = new RecognitionData(); data2.timeStamp = Marshal.ReadInt64(data, 0); data2.grammar = Marshal.ReadInt32(data, 8); data2.duration = Marshal.ReadInt32(data, 12); Int64 addr = data.ToInt64() + 16; for (int i = 0; i < NBEST_SIZE; i++) { Marshal.PtrToStructure(new IntPtr(addr), data2.scores[i]); addr += Marshal.SizeOf(typeof(NBest)); } handler.onRecognition(data2); }
private void RecognizeUser(ref Image <Bgr, byte> original, Image <Gray, byte> grayframe, Rectangle rectangle) { grayframe.ROI = rectangle; var size = Properties.Settings.Default.RecognitionImageSize; try { var id = RecognitionEngine.RecognizeUser(grayframe.Copy().Resize(size, size, Inter.Cubic)); if (id > 0) { var user = RecognitionData.GetUser(id); if (user != null) { original.Draw(user.Username, new Point(rectangle.Left, rectangle.Top - 10), FontFace.HersheyPlain, 2, new Bgr(Color.DarkTurquoise)); } } } catch (CvException) { // ignored } }