示例#1
0
        private void LoadImage()
        {
            EmguCV.LoadImage();
            originalImage.Source = EmguCV.GetOriginalBitmap();
            resultImage.Source   = EmguCV.GetResultBitmap();

            saveImageButton.IsEnabled = true;

            ProcessImage();
        }
示例#2
0
        private void ProcessImage()
        {
            if (!EmguCV.IsImageLoaded() || isUpdateRequired)
            {
                return;
            }

            if (isProcessing && !isUpdateRequired)
            {
                isUpdateRequired = true;
                while (!isProcessing)
                {
                    ;
                }
                isUpdateRequired = false;
            }

            isProcessing = true;

            EmguCV.ReloadResultImage();

            Stopwatch stopwatch = Stopwatch.StartNew();

            Preprocessing();
            preprocessingImage.Source = EmguCV.GetResultBitmap();
            stopwatch.Stop();

            preprocessingTimeTextBox.Text = stopwatch.ElapsedMilliseconds.ToString();

            stopwatch.Restart();
            System.Drawing.Point position = DetectFish();
            stopwatch.Stop();

            detectionTimeTextBox.Text   = stopwatch.ElapsedMilliseconds.ToString();
            objectPositionXTextBox.Text = position.X.ToString();
            objectPositionYTextBox.Text = position.Y.ToString();

            resultImage.Source = EmguCV.GetResultBitmap();

            isProcessing = false;
        }