コード例 #1
0
ファイル: InputManager.cs プロジェクト: dodocloud/InTab
        /// <summary>
        /// Processing loop, captures an image and processes it
        /// </summary>
        private void Application_Idle()
        {
            while (true)
            {
                try
                {
                    Image <Bgr, byte> tempFrame = captured_frame = CameraManager.GetImage();
                    if (CaptureSettings.Instance().DEFAULT_DILATATION != 0)
                    {
                        tempFrame._Dilate((int)CaptureSettings.Instance().DEFAULT_DILATATION);
                    }
                    if (CaptureSettings.Instance().DEFAULT_ERODE != 0)
                    {
                        tempFrame._Erode((int)CaptureSettings.Instance().DEFAULT_ERODE);
                    }
                    if (CaptureSettings.Instance().DEFAULT_GAMMA != 1)
                    {
                        tempFrame._GammaCorrect((double)CaptureSettings.Instance().DEFAULT_GAMMA);
                    }
                    if (CaptureSettings.Instance().DEFAULT_INVERT_ENABLED)
                    {
                        tempFrame._Not();
                    }
                    if (CaptureSettings.Instance().DEFAULT_NORMALIZE_ENABLED)
                    {
                        tempFrame._EqualizeHist();
                    }

                    // fix rotation
                    if (CalibrationSettings.Instance().CALIBRATION_ROTATION != 0)
                    {
                        tempFrame = tempFrame.Rotate(CalibrationSettings.Instance().CALIBRATION_ROTATION, new Bgr(0, 0, 0), true);
                    }

                    processor.ProcessImage(tempFrame);
                    if (interactiveWindow != null && interactiveWindow.IsVisible)
                    {
                        interactiveWindow.DrawImage(tempFrame, processor);
                    }
                    InputLogic();
                }
                catch {
                    // no-op here
                }
            }
        }