protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) { if (requestCode == 0 && resultCode == Result.Ok) { ImageCaptured?.Invoke(this, file); } }
private void _watcher_Created(object sender, FileSystemEventArgs e) { Task.Run(() => { Thread.Sleep(500); ImageCaptured?.Invoke(); Slack.Instance.PostImage("security", File.ReadAllBytes(e.FullPath), e.Name); }); }
protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data) { base.OnActivityResult(requestCode, resultCode, data); Bitmap bitmap = (Bitmap)data.Extras.Get("data"); ImageCaptured?.Invoke(this, new ImageCapturedEventArgs { Image = bitmap }); }
private void OnImageCaptured(ImageCaptured e) { lock (AllRegions) { foreach (var region in AllRegions) { region.Scan(e.Image); } } }
/// <summary> /// Процедура вызывается постоянно и отвечает за обработку кадров /// </summary> /// <param name="sender"></param> /// <param name="arg"></param> private void ProcessFrame(object sender, EventArgs arg) { DateTime DTTest = DateTime.Now; //Время сейчас if (KernelOfGabor != null) //Если ядро для преобразования Габбора заданно /////!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! { if ((DateTime.Now - LastFrame).TotalMilliseconds >= 100) // ОГРАНИЧЕНИЕ НА ЧАСТОТУ - поставленно принудительно, чтобы частота не выползада в 30 фпс и всё не висло { persec++; //Счётчик ФПСа LastFrame = DateTime.Now; //Время захвата Image <Bgr, float> image = _capture.QueryFrame().Convert <Bgr, float>().PyrDown().PyrDown(); //Захватываем, уменьшая изображение в 4 раза по каждой стороне imageBox4.Image = image.Clone(); //Отобразим на экране //Сделаем сdёртку с ядром Point _center = new Point(KernelOfGabor.Rows / 2 + 1, KernelOfGabor.Cols / 2 + 1); ConvolutionKernelF _kernel; _kernel = new ConvolutionKernelF(KernelOfGabor, _center); Image <Bgr, float> _conv = image.Convolution(_kernel); //Прибавим счётчик CurrentCapturePosition++; if (CurrentCapturePosition == LengthOfCapture) //Если заполнили массив - печещёлкиваем счётчик { CurrentCapturePosition = 0; //Перещёлкнем счётчик на ноль IsStackFull = true; //Объявим о начале работы started = true; this.Text = "In Work"; } //Загрузим изображения в массивы if (Ic[CurrentCapturePosition] == null) { Ic[CurrentCapturePosition] = new ImageCaptured(_conv); Irealpic[CurrentCapturePosition] = new ImageCaptured(image); } else { lock (Ic[CurrentCapturePosition].locker) { Ic[CurrentCapturePosition].I = _conv.Clone(); lock (Irealpic[CurrentCapturePosition].locker) { Irealpic[CurrentCapturePosition].I = image.Clone(); } Ic[CurrentCapturePosition].DT = DateTime.Now; } } if ((started) && (!done)) { done = true; } } } label2.Text = (DateTime.Now - DTTest).TotalMilliseconds.ToString(); //Счётчик времени исполнения процедуры }
private async void Timer_Tick(object sender, EventArgs e) { using (var screen = GetScreen(Screen.PrimaryScreen)) foreach (var captureArea in _captureAreas.Where(cs => cs.IsEnabled)) { if (DateTime.Now - _lastTimes[captureArea] < captureArea.Interval) { continue; } _lastTimes[captureArea] = DateTime.Now; using (var bmp = new Bitmap(captureArea.Size.Width, captureArea.Size.Height)) { using (var gr = Graphics.FromImage(bmp)) gr.DrawImageUnscaled(screen, -captureArea.Point.X, -captureArea.Point.Y, captureArea.Size.Width, captureArea.Size.Height); //bmp.Save(@"C:\_\10\06\2.jpg", ImageFormat.Jpeg); var s = new IronTesseract().Read(bmp).Text; if (!string.IsNullOrEmpty(s)) { s.Equals(null); } using (var memory = new MemoryStream()) { bmp.Save(memory, ImageFormat.Bmp); memory.Position = 0; var bmpDecoder = await Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(memory.AsRandomAccessStream()); var softwareBmp = await bmpDecoder.GetSoftwareBitmapAsync(); var ocrResult = await _ocrEngine.RecognizeAsync(softwareBmp); TextCaptured?.Invoke(captureArea, ocrResult.Lines.Select(ln => ln.Text).ToArray()); if (ImageCaptured != null) { memory.Position = 0; var bitmapimage = new BitmapImage(); bitmapimage.BeginInit(); bitmapimage.StreamSource = memory; bitmapimage.CacheOption = BitmapCacheOption.OnLoad; bitmapimage.EndInit(); ImageCaptured.Invoke(captureArea, bitmapimage); } } } } }
private void CaptureDone(Bitmap captured) { if (!capturing) { return; } lock (captureThreadLocker) { captured = RotateImage(captured); ImageCaptured?.Invoke(this, new CaptureEvent(captured)); } }
public void OnCaptureResult(CameraResult result) { UnlockFocus(); if (result == CameraResult.Completed) { // Resize and compress the image var bmp = BitmapUtils.LoadAndResizeBitmap(this.File.Path, 600, 600); // TODO make dynamic var stream = new FileStream(this.File.Path, FileMode.Create); bmp.Compress(Bitmap.CompressFormat.Jpeg, 80, stream); stream.Close(); ImageCaptured?.Invoke(this, new ImageCaptureEventArgs(this.File.Path)); } }
internal async void CaptureImage(int threshold, int smooth) { //capture new image SoftwareBitmap newImage = await Camera.cameraPreview.CaptureImage(); if (newImage != null) { if (MainPage.oldImg == null) { MainPage.oldImg = newImage; } var result = await Task.Factory.StartNew(() => MotionDetector.ComputeDifference(MainPage.oldImg, newImage, threshold, smooth)); await MainPage.runOnUIThread(() => MotionDataCollection.AddMotion(result.Difference)); MainPage.oldImg = newImage; ImageCaptured?.Invoke(this, result); } }
public ImageCapturePlugin() { Event = new ImageCaptured(); LastFrameUpdate = DateTime.Now; }
public void SendImageCaptured(byte[] imageBytes) => ImageCaptured?.Invoke(this, new ImageCapturedEventArgs(imageBytes));
public void CaptureByteArray(byte[] data) { ImageCaptured?.Invoke(this, new ImageCaptureEventArgs(data)); }
void CompletionHandler(byte[] bytes) { var eventData = new ImageCapturedEventArgs(bytes); ImageCaptured?.Invoke(this, eventData); }
/// <summary> /// Handle Image-Capture /// </summary> /// <param name="e"></param> public void OnImageCaptured(FaceWatcherEventArgs e) { ImageCaptured?.Invoke(this, e); }