private void MFBPressed(object sender, FrameReadyEventArgs e) { if (!Paused) { OnMFB?.Invoke(this, e); } }
private void _camera_FrameReady(object sender, FrameReadyEventArgs e) { Bitmap redaction = (Bitmap)e.Frame.Bitmap.Clone(); // draw points in buffer to image using (Graphics g = Graphics.FromImage(redaction)) { if (_parser.CalibratorGrid != null) { using (SolidBrush brush = new SolidBrush(Color.Black)) { Point bottomLeft = _parser.CalibratorGrid.BottomLeft; Point topLeft = _parser.CalibratorGrid.TopLeft; Point bottomRight = _parser.CalibratorGrid.BottomRight; Point topRight = _parser.CalibratorGrid.TopRight; g.DrawLine(Pens.Red, bottomLeft, bottomRight); g.DrawLine(Pens.Red, bottomLeft, topLeft); g.DrawLine(Pens.Red, topRight, bottomRight); g.DrawLine(Pens.Red, topRight, topLeft); } } // TODO: Object is currently in use elsewhere.. this.cameraPictureBox.Image = redaction; } }
private void ProcessFrame(object sender, FrameReadyEventArgs e) { if (!Paused) { FrameReady?.Invoke(this, e); } }
private void NewImage(object sender, FrameReadyEventArgs e) { var bm = (Bitmap)e.Frame.Bitmap.Clone(); if (_parser != null && _parser.CalibratorGrid != null && !_parser.CalibratorGrid.TopLeft.IsEmpty) { using (var g = Graphics.FromImage(bm)) { g.DrawLine(new Pen(System.Drawing.Color.Red), _parser.CalibratorGrid.TopLeft, _parser.CalibratorGrid.TopRight); g.DrawLine(new Pen(System.Drawing.Color.Red), _parser.CalibratorGrid.TopLeft, _parser.CalibratorGrid.BottomLeft); g.DrawLine(new Pen(System.Drawing.Color.Red), _parser.CalibratorGrid.BottomRight, _parser.CalibratorGrid.TopRight); g.DrawLine(new Pen(System.Drawing.Color.Red), _parser.CalibratorGrid.BottomRight, _parser.CalibratorGrid.BottomLeft); g.Flush(); } } if (NewGridFrame != null) { NewGridFrame(this, new FrameReadyEventArgs(new VideoFrame(0, bm))); } if (Dispatcher.CheckAccess()) { CameraImage.Source = Tools.CopyBitmap(bm); } else { Dispatcher.Invoke(() => CameraImage.Source = Tools.LoadBitmap(bm)); } }
protected override void Analyze(FrameReadyEventArgs frameReadyEventArgs) { if (!Configuration.movementNavigation) { return; } var frames = _framesCollector.GetFrames().ToList(); if (frames.Count == 0) { return; } var joints = frames.Select(a => a.GetNearestSkeleton().Joints.First(j => j.JointType == _joint)).ToList(); Vector3 calculateDisplacementVector = CalculateDisplacement(joints); if (calculateDisplacementVector.Length > MinimalVectorLength) { _oldDisplacementVector = calculateDisplacementVector; } var duration = CalculateDuration(frames); LogString.Log("Event: ContinousMovementAnalyzer: " + calculateDisplacementVector.X + " " + calculateDisplacementVector.Y + " " + calculateDisplacementVector.Z); Raise(() => RaiseEvent(frames, _oldDisplacementVector, duration)); }
// When a new frame is received, display it in the UI, viewCam0 private void FrameReady_cam0(object sender, FrameReadyEventArgs e) { AsyncFormUpdate(new Action(() => viewCam0.Image = e.Bitmap)); // CHECK IF CAMERA VIEW HAS CHANGED if (!returnedData.ContainsKey("cameraView")) { return; } if (returnedData["cameraView"].ToString() == ((CameraPort)currentCameraView).ToString()) { return; } // If the cameraView in NT has changed, switch camera views and restart camera switch (returnedData["cameraView"].ToString()) { case "REAR": currentCameraView = (int)CameraPort.REAR; break; case "FRONT": default: currentCameraView = (int)CameraPort.FRONT; break; } StartCamera(); }
private void mjpeg_FrameReady(object sender, FrameReadyEventArgs e) { var rotatedImage = new TransformedBitmap(e.BitmapImage, new RotateTransform(90)); ImageViewer.Source = rotatedImage; }
private void OnTrackPen(object sender, FrameReadyEventArgs e) { /* We allow just 1 Thread to process a picture at a time. * If there is already a thread running, we discard the new * frame after we waited for half the framerate. So we give * time to catch up in two frames. */ if (_semaphore.Wait(20)) { var task = Task.Run(() => { try { ProcessFrame(e.Frame); } finally { _semaphore.Release(); } }); // rethrow Exception if necessary if (task.Exception != null) { Logger.Log(task.Exception); } } }
protected override void Analyze(FrameReadyEventArgs frameReadyEventArgs) { if (!Configuration.dualSwipeNavigation) { return; } try { if (Math.Abs(_leftHandGestrue.Timestamp - _rightHandGestrue.Timestamp) > Epsilon) { return; } if (_leftHandGestrue.Gesture == GesturesEnum.SwipeToLeft && _rightHandGestrue.Gesture == GesturesEnum.SwipeToRight) { LogString.Log("Event: SwipeOut"); Raise(() => ParallelSwipeDetected(this, new SwipeEventArgs(GesturesEnum.SwipeOut))); } if (_leftHandGestrue.Gesture == GesturesEnum.SwipeToRight && _rightHandGestrue.Gesture == GesturesEnum.SwipeToLeft) { LogString.Log("Event: SwipeIn"); Raise(() => ParallelSwipeDetected(this, new SwipeEventArgs(GesturesEnum.SwipeIn))); } } catch (Exception e) { System.Console.WriteLine("wacek"); } }
public static FrameReadyEventArgs Create(FrameHeaderType header, byte[] data) { var args = new FrameReadyEventArgs() { Servos = new uint[26] }; var br = new BinaryReader(new MemoryStream(data)); Buffer.BlockCopy(data, 0, args.Servos, 0, args.Servos.Length * 4); br.BaseStream.Seek(args.Servos.Length * 4, SeekOrigin.Begin); if (header == FrameHeaderType.ESP32Debug) { args.Model.tlen.x = br.ReadDouble(); args.Model.tlen.y = br.ReadDouble(); args.Model.tlen.z = br.ReadDouble(); args.Model.pos.x = br.ReadDouble(); args.Model.pos.y = br.ReadDouble(); args.Model.pos.z = br.ReadDouble(); args.Model.rot.x = br.ReadDouble(); args.Model.rot.y = br.ReadDouble(); args.Model.rot.z = br.ReadDouble(); args.Model.turnedOn = br.ReadBoolean(); args.Model.cps = br.ReadInt32(); } return(args); }
public void ProcessFrameData(FrameReadyEventArgs args) { for (int i = 0; i < servos.Length; i++) { servos[i].ProcessData(args.Servos[i]); } var model = args.Model; float newPosX = 0, newPosY, newPosZ = 0, newRotY = 0; if (lastHexaPos != null) { newPosX = lastHexaPos.Value.x; newPosZ = lastHexaPos.Value.z; } newPosY = (float)(model.pos.y / 100.0f) + HexConfig.otherJointSize / 2; newPosX += (float)(model.tlen.x / 500.0f); newPosZ += (float)(model.tlen.z / 500.0f); if (lastHexaRotY != null) { newRotY = lastHexaRotY.Value; } newRotY -= (float)(model.tlen.y / 10.0f); hexaNewRotY = newRotY; hexaNewPosition = new Vector3(newPosX, newPosY, newPosZ); Debug.Log($"Model tlen={model.tlen} rot={model.rot} pos={model.pos} pwr={model.turnedOn}"); }
protected override void Analyze(FrameReadyEventArgs frameReadyEventArgs) { var frames = _framesCollector.GetFrames(LastFrameTimestamp).ToList(); if (frames.Count == 0) { return; } var torsoPosHistory = frames.Select(a => a.GetNearestSkeleton().Joints.FirstOrDefault(b => b.JointType == TJointType.Spine)).ToList(); var LeftHandPosHistory = frames.Select(a => a.GetNearestSkeleton().Joints.FirstOrDefault(b => b.JointType == TJointType.HandLeft)).ToList(); var RightHandPosHistory = frames.Select(a => a.GetNearestSkeleton().Joints.FirstOrDefault(b => b.JointType == TJointType.HandRight)).ToList(); var lastLeftHandFrame = LeftHandPosHistory.Last(); var lastRightHandFrame = RightHandPosHistory.Last(); var lastTorsoFrame = torsoPosHistory.Last(); var diffLeft = lastTorsoFrame.Position.Z - lastLeftHandFrame.Position.Z; var diffRight = lastTorsoFrame.Position.Z - lastRightHandFrame.Position.Z; if (ignoredCalls > 0) { ignoreCallsTrigger = true; ignoredCalls--; return; } else if (ignoreCallsTrigger == true) { ignoreCallsTrigger = false; LeftLastPosition = lastLeftHandFrame.Position; RightLastPosition = lastRightHandFrame.Position; LastHandsDistance = CalculateDistance(lastLeftHandFrame, lastRightHandFrame); } Calibrate(diffLeft, diffRight); bool left = LeftHandActive(diffLeft, lastLeftHandFrame.Position); bool right = RightHandActive(diffRight, lastRightHandFrame.Position); if (left && right) { if (!bothHandsActivated) { bothHandsActivated = true; LastHandsDistance = CalculateDistance(lastLeftHandFrame, lastRightHandFrame); LogString.Log("BothHands Activated"); } NavigateByBothHands(lastLeftHandFrame, lastRightHandFrame, frames); } else if (left) { NavigateByLeftHand(lastLeftHandFrame, frames); } else if (right) { NavigateByRightHand(lastRightHandFrame, frames); } }
private async void mjpeg_FrameReady(object sender, FrameReadyEventArgs e) { InMemoryRandomAccessStream stream = new InMemoryRandomAccessStream(); await stream.WriteAsync(e.FrameBuffer); stream.Seek(0); _bmp.SetSource(stream); image.Source = _bmp; }
private static void mjpeg_FrameReady(object sender, FrameReadyEventArgs e) { MjpegDecoder md = (MjpegDecoder)sender; render.hasFirst = true; render.currentBMP = MD.Bitmap; md.FrameReady -= mjpeg_FrameReady; }
private static void OnFrameReady(object sender, FrameReadyEventArgs e) { Console.Write($"FPS: {sp.FPS}. CPS: {e.Model.cps} Power: {e.Model.turnedOn}. [{e.Servos.Length}]: "); for (int i = 0; i < e.Servos.Length; i++) { Console.Write($"{e.Servos[i]:X} "); } Console.WriteLine(); }
private void mjpeg_FrameReady(object sender, FrameReadyEventArgs e) { MjpegDecoder md = (MjpegDecoder)sender; hasFirst = true; currentBMP = MD.Bitmap; draw(); md.FrameReady -= mjpeg_FrameReady; }
private void mjpeg_FrameReady(object sender, FrameReadyEventArgs e) { using (var stream = new MemoryStream(e.FrameBuffer)) { viewport.Source = BitmapFrame.Create(stream, BitmapCreateOptions.None, BitmapCacheOption.OnLoad); } textLoading.IsEnabled = false; }
/// <summary> /// This is the callback when a new bitmap is available from the video camera /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void mjpeg_FrameReady(object sender, FrameReadyEventArgs e) { this.videoImage.Source = e.BitmapImage; _lastUpdated = DateTime.Now; if (this.noVideoFeedAvailableGrid.Visibility == Visibility.Visible) { this.videoImage.Opacity = 1.0; this.noVideoFeedAvailableGrid.Visibility = Visibility.Collapsed; } }
void OnFrameReady(object sender, FrameReadyEventArgs e) { if (e.BitmapSource != null) { this.CameraInfo.Unauthorized = false; } if (FrameAvailable != null) { FrameAvailable(sender, e); } }
private void Camera_FrameReady(object sender, FrameReadyEventArgs e) { // Set the camera source. display.Source = e.BitmapImage; // Also show the image on the other window if (IsShowingOtherWindow) { OtherWindow.ImageStream = e.BitmapImage; } }
internal void NewImg(object sender, FrameReadyEventArgs e) { if (Dispatcher.CheckAccess()) { CamImg.Source = Tools.CopyBitmap(e.Frame.Bitmap); } else { Dispatcher.Invoke(() => CamImg.Source = Tools.LoadBitmap(e.Frame.Bitmap)); } }
private void OnImageReady(FrameReadyEventArgs e) { EventHandler <ImageReadyEventArgs> handler = ImageReady; if (handler != null) { handler(this, new ImageReadyEventArgs() { BitmapImage = e.BitmapImage }); } }
private void BaseCalibration(object sender, FrameReadyEventArgs e) { if (_t != null && _t.Exception != null) { throw _t.Exception; } if (_sem.CurrentCount >= 1)//_t.Status != TaskStatus.Running) { _sem.Wait(); Task.Factory.StartNew(() => _t = CalibThread(e)); } }
private void BaseCalibration(object sender, FrameReadyEventArgs e) { if (_t != null && _t.Exception != null) { Logger.Log(_t.Exception); } if (_sem.CurrentCount >= 1) { _sem.Wait(); Task.Factory.StartNew(() => _t = CalibThread(e)); } }
private void MjpegOnFrameReady(object sender, FrameReadyEventArgs e) { Stream stream = e.FrameBuffer.AsStream(); var memStream = new MemoryStream(); stream.CopyToAsync(memStream); memStream.Position = 0; var bitmap = new BitmapImage(); bitmap.SetSource(memStream.AsRandomAccessStream()); image.Source = bitmap; _mainPage.DisplayStatus(string.Empty, MainPage.NotifyType.StatusMessage); }
public void FrameReady(object sender, FrameReadyEventArgs e) { if (form != null && form.IsActive == true) { form.Close(); } if (!CamInfo.isLoggedIn) { CamInfo.isLoggedIn = true; updateCameraNameList(); } CamInfo.VideoSource = e.BitmapImage; }
private async void MjpegDecoder_FrameReady(object sender, FrameReadyEventArgs e) { // Copy the received FrameBuffer to an InMemoryRandomAccessStream. using (InMemoryRandomAccessStream ms = new InMemoryRandomAccessStream()) { using (DataWriter writer = new DataWriter(ms.GetOutputStreamAt(0))) { writer.WriteBytes(e.FrameBuffer); await writer.StoreAsync(); } // Update source of CameraBitmap with the memory stream CameraBitmapImage.SetSource(ms); } }
private async void Mjpeg_FrameReady(object sender, FrameReadyEventArgs e) { /*MemoryStream memoryStream = new MemoryStream(); * await memoryStream.WriteAsync(e.FrameBuffer.ToArray(), 0, Convert.ToInt32(e.FrameBuffer.Length)); * * MemoryBuffer mb = new MemoryBuffer(memoryStream); * * Texture2D texture = new Texture2D(); * texture.Load(mb); * * var material = new Material(); * material.SetTexture(TextureUnit.Diffuse, texture); * material.SetTechnique(0, CoreAssets.Techniques.Diff); * plane.SetMaterial(material);*/ }
private async void ShowImage(object sender, FrameReadyEventArgs e) { using (InMemoryRandomAccessStream stream = new InMemoryRandomAccessStream()) { using (DataWriter writer = new DataWriter(stream.GetOutputStreamAt(0))) { writer.WriteBytes(e.FrameBuffer); await writer.StoreAsync(); } await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { image.SetSource(stream); imgOfStream.Source = image; }); } }
// Private method private void mjpeg_FrameReady(object sender, FrameReadyEventArgs e) { sw.Stop(); NbPerSecond = sw.ElapsedMilliseconds; if (sw.ElapsedMilliseconds == 0) { NbPerSecond = 9999; } else { NbPerSecond = 1000M / sw.ElapsedMilliseconds; } sw = new Stopwatch(); sw.Start(); _lastBitmap = e.Bitmap; }
private async void _mjpeg_FrameReady(object sender, FrameReadyEventArgs e) { // get it on the UI thread await this.Dispatcher.RunAsync( CoreDispatcherPriority.Normal, async() => { // create a new BitmapImage from the JPEG bytes var img = new BitmapImage(); var ras = new MemoryRandomAccessStream(e.FrameBuffer.ToArray()); await img.SetSourceAsync(ras); this.image.Source = img; }); }
private void handleFrameFn(object sender, FrameReadyEventArgs e) { // Int32Rect cropRect = new Int32Rect(400, 380, 300, 200); // BitmapSource croppedImage = new CroppedBitmap(e.BitmapImage, cropRect); // image4.Source = croppedImage; if (_rotationAngle != 0) { TransformedBitmap tmpImage = new TransformedBitmap(); tmpImage.BeginInit(); tmpImage.Source = e.BitmapImage; // of type BitmapImage RotateTransform transform = new RotateTransform(_rotationAngle); tmpImage.Transform = transform; tmpImage.EndInit(); _dispImage.Source = tmpImage; } else { _dispImage.Source = e.BitmapImage; } }
// Event handler for MjpegDecoder FrameReady event private void mjpeg_FrameReady(object sender, FrameReadyEventArgs e) { this.imgStreamDisplay.Source = e.BitmapImage; }
private void mjpeg_FrameReady(object sender, FrameReadyEventArgs e) { //Update image on each new frame event videoStreamImage.Source = e.BitmapImage; }
private void _decoder_FrameReady(object sender, FrameReadyEventArgs e) { _panel.BackgroundImage = e.Bitmap; }
private void mjpeg_FrameReady(object sender, FrameReadyEventArgs e) { videoBox.Image = e.Bitmap; }
private void mjpeg_FrameReady(object sender, FrameReadyEventArgs e) { image.Source = e.BitmapImage; }
private void mjpeg_FrameReady(object sender, FrameReadyEventArgs e) { imgVideo.Image = e.Bitmap; ImageConverter img = new ImageConverter(); //byte[] bytes = (byte[])img.ConvertTo(e.Bitmap, typeof(byte[])); //ImageListStreamer //SendData(bytes); var size = e.Bitmap.Size; var newFrameSize = new Size(Size.Width - 200, size.Height * (Size.Width) / size.Width); if (newFrameSize.Height <= Size.Height) imgVideo.Size = newFrameSize; //Calculate frame rate if (!fpsCalculate.IsRunning) fpsCalculate.Start(); else { lblFps.Text = (1000.0d / fpsCalculate.ElapsedMilliseconds).ToString("F") + " fps"; fpsCalculate.Restart(); } }