Esempio n. 1
0
        public Form1()
        {
            InitializeComponent();

            Debug.Listeners.Add(new TextWriterTraceListener(Console.Out));

            episcan = new MyEpiscan();
            subcam  = new SubCam();

            UpdateCameraList();
            InitUISyncboard();
            InitUIScreen();

            // camera groupbox disable
            this._cameraGb.Enabled = false;

            // episcan groupbox disable
            this._episcanGb.Enabled = false;

            //
            this._displayColorCb.SelectedIndex = 0;

            // Set event to receive event notification when display settings change.
            Microsoft.Win32.SystemEvents.DisplaySettingsChanged += new EventHandler(SystemEvents_DisplaySettingChanged);
        }
Esempio n. 2
0
    public async Task Run(MyEpiscan episcan)
    {
        if (YMin < 0)
        {
            YMin = 0;
        }
        if (YMax < 0)
        {
            YMax = episcan.Screen.Size.Height;
        }

        // generate patterns
        var projSize = new Size(episcan.Screen.Size.Width, episcan.Screen.Size.Height);
        var projNum  = (YMax - YMin) / Shift;

        var patterns = new List <Mat>();

        for (int i = Math.Max(YMin, 0); i < Math.Min(YMax - Width, YMax - 1); i += Shift)
        {
            var pattern = new Mat(projSize, MatType.CV_8UC1);
            pattern.RowRange(i, i + Width).SetTo(255);
            patterns.Add(pattern);
        }
        // Switch to synchronized mode
        episcan.Sensor.ShutterMode = MySensor.ShutterModeList.Rolling;

        // capture and save
        for (int i = 0; i < patterns.Length; i++)
        {
            var pattern = patterns[i];
            episcan.Screen.BackgroundMat = pattern;
            await Task.Delay(100);

            var captured = await episcan.CaptureAverage(AverageNum);

            var filename = $"line_{i:D4}.png";
            Cv2.ImWrite(filename, captured);
        }
    }
Esempio n. 3
0
    public async Task Run(MyEpiscan episcan)
    {
        // generate patterns
        var projSize = new Size(episcan.Screen.Size.Width, episcan.Screen.Size.Height);
        var pattern  = new Mat(projSize, MatType.CV_8UC1);

        pattern.ColRange(projSize.Width / 2 - 50, projSize.Width / 2 + 50).SetTo(255);

        episcan.Screen.BackgroundMat = pattern;
        await Task.Delay(100);

        // Switch to synchronized mode
        episcan.Sensor.ShutterMode = MySensor.ShutterModeList.Rolling;
        for (int delay = DelayMin, i = 0; delay < DelayMax; delay += Shift, i++)
        {
            episcan.SetDelayExposure(delay, Exposure);
            await Task.Delay(1);

            var captured = await episcan.CaptureAverage(AverageNum);

            var filename = $"capture_{i:D5}_{(int)delay:D5}.png";
            Cv2.ImWrite(filename, captured);
        }
    }
Esempio n. 4
0
 public void Configure(MyEpiscan episcan)
 {
     Debug.Write("hello");
 }