private void InfraredFrameReader_FrameArrived(object sender, InfraredFrameArrivedEventArgs e)
        {
            using (InfraredFrame frame = e.FrameReference.AcquireFrame())
            {
                if (frame == null)
                {
                    return;
                }

                if (Mode == CameraMode.Infrared)
                {
                    if (blobDetect)
                    {
                        KeyValuePair <BitmapSource, List <KeyValuePair <Emgu.CV.Cvb.CvBlob, CameraSpacePoint> > > kvp = frameProc.processBlobs(depthFrameReader, frame, BlobTreshold);
                        List <KeyValuePair <Emgu.CV.Cvb.CvBlob, CameraSpacePoint> > blobs = kvp.Value;
                        if (kvp.Key == null || blobs == null)
                        {
                            return;
                        }

                        camera.Source     = kvp.Key;
                        blobCamera.Source = camera.Source;

                        if (blobs.Count > 0)
                        {
                            foreach (var blob in blobs)
                            {
                                BlobX = m2cm(blob.Value.X);
                                BlobY = m2cm(blob.Value.Y);
                                BlobZ = m2cm(blob.Value.Z);

                                var blobEventModel = new BlobEventModel(blob.Value, blob.Key.Area);

                                wsClient.SendData(BlobSerializer.SerializeBlob(blobEventModel));
                            }
                        }
                    }
                    else
                    {
                        camera.Source = frameProc.processIRFrame(frame);
                    }
                }
            }
        }