private static void connectRoutine_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            Image <Bgr, byte> connecting = new Image <Bgr, byte>(new Bitmap((int)MainWindow.mMainWindow.ibOriginal.Width, (int)MainWindow.mMainWindow.ibOriginal.Height));

            connecting.SetValue(new Bgr(Color.Gray));   // Set background color
            ShapeNDraw.drawString("Connecting", connecting, new System.Drawing.Point(connecting.Width / 3 - 10, connecting.Height / 2 - 10), 1, Color.White);

            Image <Bgr, byte> connected = new Image <Bgr, byte>(new Bitmap((int)MainWindow.mMainWindow.ibOriginal.Width, (int)MainWindow.mMainWindow.ibOriginal.Height));

            connected.SetValue(new Bgr(Color.Black));   // Set background color
            ShapeNDraw.drawString("Connected", connected, new System.Drawing.Point(connected.Width / 3 - 10, connected.Height / 2 - 10), 1, Color.White);


            if (e.ProgressPercentage == 0)
            {
                MainWindow.mMainWindow.ibOriginal.Source = ImgConverter.ToBitmapSource(connecting);
                MainWindow.mMainWindow.Btn_PR.IsEnabled  = false;
            }


            if (e.ProgressPercentage == 100)
            {
                MainWindow.mMainWindow.ibOriginal.Source = ImgConverter.ToBitmapSource(connected);
                MainWindow.mMainWindow.Btn_PR.IsEnabled  = true;
                PreviewRoutine.startPreview(PreviewRoutine._previewFPS);
            }
        }
        private void Img_viewer_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
        {
            lbl_imgInfo.Content = $"Mouse Location: [{e.GetPosition(Img_viewer).X : 0}, {e.GetPosition(Img_viewer).Y : 0}]";
            if (currentImage != null)
            {
                System.Drawing.Point p = new System.Drawing.Point();
                p.X = (int)e.GetPosition(Img_viewer).X;
                p.Y = (int)e.GetPosition(Img_viewer).Y;
                if (!selectingArea)
                {
                    return;
                }

                if (((double)p.X / zoomFactor_x) != X0)
                {
                    X1 = ((double)p.X / zoomFactor_x);
                }
                if (((double)p.Y / zoomFactor_y) != Y0)
                {
                    Y1 = ((double)p.Y / zoomFactor_y);
                }

                cropRect = ShapeNDraw.MakeRectangle(X0, Y0, X1, Y1);

                Bitmap bmp = currentImage.Copy().ToBitmap();
                selectedGraphics = Graphics.FromImage(bmp);
                selectedGraphics.FillRectangle(new SolidBrush(Color.FromArgb(128, 72, 145, 220)), cropRect);
                Img_viewer.Source = ImgConverter.ToBitmapSource(bmp);
            }
        }