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); } } }
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); } }
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!"); } }
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); } }
private void Setting_preference_Click(object sender, RoutedEventArgs e) { PreviewRoutine.StopPreview(); Preference preferenceWindow = new Preference(); preferenceWindow.preferenceUpdated += preferenceWindow_preferenceUpdated; preferenceWindow.Show(); }
private void Tools_cropView_Checked(object sender, RoutedEventArgs e) { PreviewRoutine.IsCropViewEnabled = true; if (!PreviewRoutine.IsCapturing) { PreviewRoutine.startPreview(PreviewRoutine._previewFPS); } }
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); } } }
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; } }
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!"); } }
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); } } }
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; }
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(); }
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); } } }
/// <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(); }
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); } } }
private void Btn_ocrOneTime_Click(object sender, RoutedEventArgs e) { PreviewRoutine.StopPreview(); OCR.startOCRRoutine(); }
private void Btn_staticProcess_Click(object sender, RoutedEventArgs e) { PreviewRoutine.originalImageProcessing(); PreviewRoutine.processedImageDisplaying(); PreviewRoutine.GUIUpdates(); }