Ejemplo n.º 1
0
        private void ibOriginal_MouseDown(object sender, MouseButtonEventArgs e)
        {
            _mouseDown = true;
            if (GV.imgOriginal != null)
            {
                PreviewRoutine.StopPreview();
                ibOriginal.Cursor = Cursors.Cross;
                System.Drawing.Point p = new System.Drawing.Point();
                p.X = (int)e.GetPosition(ibOriginal).X;
                p.Y = (int)e.GetPosition(ibOriginal).Y;

                if ((bool)Radio_Color.IsChecked && (bool)Chk_multiColorPoints.IsChecked)
                {
                    if (GV._remainColorPoints > 0)
                    {
                        Rectangle bond = new Rectangle(
                            p.X - GV._colorRegionSize / 2, p.Y - GV._colorRegionSize / 2,
                            GV._colorRegionSize, GV._colorRegionSize);

                        GV.imgOriginal.Draw(bond, new Bgr(Color.AliceBlue), 1);

                        MainWindow.mMainWindow.ibOriginal.Source = ImgConverter.ToBitmapSource(GV.imgOriginal);

                        regionImgSet[GV._remainColorPoints - 1] = GV.imgOriginal_pure.Copy(bond);

                        GV._remainColorPoints--;
                    }
                }
                else
                {
                    ImgCropping.WPF_mouseDown(GV.imgOriginal, ibOriginal, p, GV._zoomFactor);
                }
            }
        }
Ejemplo n.º 2
0
 private void Btn_setOCRArea_Click(object sender, RoutedEventArgs e)
 {
     if (GV.mCamera != null && GV.mCamera.IsConnected)
     {
         if (PreviewRoutine.IsCapturing)
         {
             PreviewRoutine.StopPreview();
             BindMngr.GMessage.value = "Select the area and hit set area again to confirm";
         }
         else if (!PreviewRoutine.IsCapturing && ImgCropping.rect.Width * ImgCropping.rect.Height != 0)
         {
             OCR.croppedOCRArea = ImgCropping.rect;
             PreviewRoutine.startPreview(PreviewRoutine._previewFPS);
             BindMngr.GMessage.value = "Area set! Only do OCR inside the red rectangle!";
         }
     }
     else if (!PreviewRoutine.IsCapturing && ImgCropping.rect.Width * ImgCropping.rect.Height != 0)   //crop static picture
     {
         OCR.croppedOCRArea      = ImgCropping.rect;
         BindMngr.GMessage.value = "Area set! Only do OCR inside the red rectangle!";
         MainWindow.mMainWindow.ibOriginal.Source = ImgConverter.ToBitmapSource(GV.imgOriginal);
         Image <Bgr, byte> bm = GV.imgOriginal.Copy();
         bm.Draw(OCR.croppedOCRArea, new Bgr(Color.Red), 2);
         MainWindow.mMainWindow.ibOriginal.Source = ImgConverter.ToBitmapSource(bm);
     }
 }
Ejemplo n.º 3
0
 private void Button_Click(object sender, RoutedEventArgs e)                    //Preview Button
 {
     if ((bool)Chk_connectCam.IsChecked)
     {
         if (PreviewRoutine.IsCapturing == true)
         {
             PreviewRoutine.StopPreview();                    //stop capturing
             //Chk_connectCam.IsEnabled = false;
             if (GV.imgOriginal != null)
             {
                 GV.IsPictureLoaded = true;
             }
             PreviewRoutine.IsCapturing = false;
         }
         else
         {
             PreviewRoutine.startPreview(PreviewRoutine._previewFPS);
             //Chk_connectCam.IsEnabled = false;
             PreviewRoutine.IsCapturing = true;
         }
     }
     else
     {
         mMessageBox.Show("Please connect camera first!");
     }
 }
Ejemplo n.º 4
0
 private void preferenceWindow_preferenceUpdated(object sender, EventArgs e)
 {
     if (GV.IsCameraConnected)
     {
         PreviewRoutine.startPreview(PreviewRoutine._previewFPS);
     }
 }
        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);
            }
        }
Ejemplo n.º 6
0
        private void Setting_preference_Click(object sender, RoutedEventArgs e)
        {
            PreviewRoutine.StopPreview();
            Preference preferenceWindow = new Preference();

            preferenceWindow.preferenceUpdated += preferenceWindow_preferenceUpdated;
            preferenceWindow.Show();
        }
Ejemplo n.º 7
0
 private void Tools_cropView_Checked(object sender, RoutedEventArgs e)
 {
     PreviewRoutine.IsCropViewEnabled = true;
     if (!PreviewRoutine.IsCapturing)
     {
         PreviewRoutine.startPreview(PreviewRoutine._previewFPS);
     }
 }
Ejemplo n.º 8
0
 private void Chk_multiColorPoints_Checked(object sender, RoutedEventArgs e)
 {
     if (PreviewRoutine.IsCapturing)
     {
         PreviewRoutine.StopPreview();
         Thread.Sleep(300);
         if (GV.imgOriginal_pure == null)
         {
             MainWindow.mMainWindow.ibOriginal.Source = ImgConverter.ToBitmapSource(GV.imgOriginal_pure);
         }
     }
 }
Ejemplo n.º 9
0
 private void Btn_decode_Click(object sender, RoutedEventArgs e)
 {
     PreviewRoutine.StopPreview();
     if (GV.mDecoderEngine == DecoderEngine.Zxing)
     {
         ZxingDecoder.StartDecodeRoutine();
     }
     else if (GV.mDecoderEngine == DecoderEngine.Cortex)
     {
         CortexDecoder.Decode(GV.imgOriginal.ToBitmap());
         lbl_barcodeDetectResult.Content = CortexDecoder.ResultString;
     }
 }
Ejemplo n.º 10
0
        private void Menu_conversion_Click(object sender, RoutedEventArgs e)
        {
            if (GV.mCamera != null && GV.mCamera.IsConnected)
            {
                PreviewRoutine.StopPreview();

                GV.mConvert = new Conversion(GV.mCamera, GV.imgWidth, GV.imgHeight);
                GV.mConvert.ShowDialog();
            }
            else
            {
                mMessageBox.Show("Connect a camera first!");
            }
        }
Ejemplo n.º 11
0
        private void Btn_setReference_Click(object sender, RoutedEventArgs e)
        {
            if (ImgCropping.rect.Width * ImgCropping.rect.Height != 0)
            {
                Image <Bgr, byte> Img = GV.imgOriginal_pure;
                GV.ref_img         = Img.Copy(ImgCropping.rect).Convert <Bgr, byte>(); //new Image<Gray, Byte>(mCrop.cropBitmap(imgOriginal.ToBitmap(), mCrop.rect));
                ibReference.Source = ImgConverter.ToBitmapSource(GV.ref_img);

                if (GV.mCamera.IsConnected)
                {
                    PreviewRoutine.startPreview(PreviewRoutine._previewFPS);
                }
            }
        }
Ejemplo n.º 12
0
        private void Chk_connectCam_Unchecked(object sender, RoutedEventArgs e)
        {
            if (!IsLoaded)
            {
                return;
            }

            if (PreviewRoutine.IsCapturing)
            {
                PreviewRoutine.StopPreview();
            }
            if (GV.mCamera.IsConnected)                                           //if there is a camera, dispose and reconnect.
            {
                GV.mCamera.disposeCam();
                GV.mCamera.IsConnected = false;
            }

            Panel_liveViewOptions.IsEnabled = false;
        }
Ejemplo n.º 13
0
        private void Radio_PTcam_Checked(object sender, RoutedEventArgs e)
        {
            if (!Radio_PTcam.IsLoaded)
            {
                return;
            }

            PreviewRoutine.StopPreview();
            GV._camSelected = camType.PointGreyCam;
            if (GV._camConnectAtStartup)
            {
                ConnectRoutine.connectPointGreyCam();
            }
            else
            {
                Chk_connectCam.IsChecked = false;
            }

            saveProgramSetting();
        }
Ejemplo n.º 14
0
        public MainWindow()
        {
            //Static MainWindow
            mMainWindow = this;
            //Windows.main = this;
            DataContext = BindMngr;

            loadingScreen.Show();
            InitializeComponent();

            mTrainingWindow = new TrainingWindow();

            // Setup background worker
            PreviewRoutine.previewSetup();
            ConnectRoutine.connectionSetup();
            ImageResizing.ImageResizingSetup();
            ResNet.CNTK_ResNetSetup();
            ZxingDecoder.DecoderSetup();
            mTrainingWindow.TrainModelRoutineSetup();

            OCR.OCRSetup(OCRMode.NUMBERS);

            // Create Directories
            GV.ML_Folders[(int)MLFolders.MLRoot]           = Environment.CurrentDirectory + MLFolders.MLRoot.GetDescription();
            GV.ML_Folders[(int)MLFolders.ML_CNTK]          = Environment.CurrentDirectory + MLFolders.ML_CNTK.GetDescription();
            GV.ML_Folders[(int)MLFolders.ML_CNTK_model]    = Environment.CurrentDirectory + MLFolders.ML_CNTK_model.GetDescription();
            GV.ML_Folders[(int)MLFolders.ML_YOLO]          = Environment.CurrentDirectory + MLFolders.ML_YOLO.GetDescription();
            GV.ML_Folders[(int)MLFolders.ML_YOLO_backup]   = Environment.CurrentDirectory + MLFolders.ML_YOLO_backup.GetDescription();
            GV.ML_Folders[(int)MLFolders.ML_YOLO_model]    = Environment.CurrentDirectory + MLFolders.ML_YOLO_model.GetDescription();
            GV.ML_Folders[(int)MLFolders.ML_YOLO_data]     = Environment.CurrentDirectory + MLFolders.ML_YOLO_data.GetDescription();
            GV.ML_Folders[(int)MLFolders.ML_YOLO_data_img] = Environment.CurrentDirectory + MLFolders.ML_YOLO_data_img.GetDescription();

            foreach (string str in GV.ML_Folders)
            {
                if (str != null && !Directory.Exists(str))
                {
                    Directory.CreateDirectory(str);
                }
            }
        }
Ejemplo n.º 15
0
        /// <summary>
        /// GUI Operation
        /// </summary>
        #region <GUI operation>
        private void Radio_webcam_Checked(object sender, RoutedEventArgs e)
        {
            if (!Radio_webcam.IsLoaded)
            {
                return;
            }

            PreviewRoutine.StopPreview();
            GV._camSelected = camType.WebCam;
            if (GV._camConnectAtStartup)                                          //connect cam automatically
            {
                ConnectRoutine.connectWebCam();
                //Chk_connectCam.IsEnabled = false;                              //disable chk box for connecting the camera
            }
            else
            {
                //Chk_connectCam.IsEnabled = true;
                Chk_connectCam.IsChecked = false;
            }

            saveProgramSetting();
        }
Ejemplo n.º 16
0
        private void Btn_setObject_Click(object sender, RoutedEventArgs e)
        {
            if (finalColorRegionImg != null)
            {
                GV.object_img = finalColorRegionImg.Copy();
                finalColorRegionImg.Dispose();

                if (GV.mCamera.IsConnected)
                {
                    PreviewRoutine.startPreview(PreviewRoutine._previewFPS);
                }
            }
            else if (ImgCropping.rect.Width * ImgCropping.rect.Height != 0)
            {
                Image <Bgr, byte> Img = GV.imgOriginal;
                GV.object_img   = Img.Copy(ImgCropping.rect).Convert <Bgr, byte>(); //new Image<Gray, Byte>(mCrop.cropBitmap(imgOriginal.ToBitmap(), mCrop.rect));
                ibObject.Source = ImgConverter.ToBitmapSource(GV.object_img);

                if (GV.mCamera.IsConnected)
                {
                    PreviewRoutine.startPreview(PreviewRoutine._previewFPS);
                }
            }
        }
Ejemplo n.º 17
0
 private void Btn_ocrOneTime_Click(object sender, RoutedEventArgs e)
 {
     PreviewRoutine.StopPreview();
     OCR.startOCRRoutine();
 }
Ejemplo n.º 18
0
 private void Btn_staticProcess_Click(object sender, RoutedEventArgs e)
 {
     PreviewRoutine.originalImageProcessing();
     PreviewRoutine.processedImageDisplaying();
     PreviewRoutine.GUIUpdates();
 }