Beispiel #1
0
        private RecognitionOptions ConfigureRecognitionOptionsBeforeComputing()
        {
            RecognitionOptions ro = null;

            if (checkBoxBicolor.Checked)
            {
                ro = new OptionsOfBicolorRecognition();
            }

            if (checkBoxSharpBorders.Checked)
            {
                ro = new OptionsOfRecognitionWithSharpBorder();
            }

            if (checkBoxRgbCoord.Checked)
            {
                ro = new OptionsOfRecognitionWithRgbCoord()
                {
                    MaxLen = trackBarMaxLen.Value
                };
            }

            if (checkBoxRgbChannels.Checked)
            {
                ro = new OptionsOfRecognitionWithRgbChannels()
                {
                    MaxDifR = trackBarR.Value,
                    MaxDifG = trackBarG.Value,
                    MaxDifB = trackBarB.Value,

                    MinCountOfChannels = trackBarRgbChannels.Value,
                };
            }

            if (checkBoxHsv.Checked)
            {
                ro = new OptionsOfRecognitionWithHsv()
                {
                    MaxDifH = (decimal)trackBarH.Value / 100,
                    MaxDifS = (decimal)trackBarS.Value / 100,
                    MaxDifV = (decimal)trackBarV.Value / 100,

                    MinCountOfChannels = trackBarHsvChannels.Value,
                };
            }

            if (ro != null)
            {
                ro.CountOfNoiseSuppression = checkBoxNoiseSuppression.Checked ? (int)numericUpDownNoiseSuppression.Value : 0;
                ro.isContourRecognition    = checkBoxContourRecognition.Checked;

                return(ro);
            }

            MessageBox.Show("Не выбраны параметры распознавания фигур", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

            throw new ApplicationException("Recognition options are not selected");
        }
Beispiel #2
0
        private Task ThreadedCompute(RecognitionOptions ro)
        {
            Task task = new Task(() => {
                Mprc = new ManagerOfPatternRecognComputation {
                    ImageIn = pictureBox1.Image, RO = ro
                };

                Mprc.Computate();

                symbol = new Symbol((Figure <bool>)Mprc.PatternRecognResult.figureList.Last.Value);
            });

            task.Start();

            return(task);
        }
Beispiel #3
0
        private Task ThreadedCompute(RecognitionOptions ro)
        {
            Task task = new Task(() => {
                Mprc = new ManagerOfPatternRecognComputation {
                    ImageIn = pictureBox1.Image, RO = ro
                };

                Mprc.Computate();

                pictureBox2.Image = Mprc.ImageOut;
            });

            task.Start();

            return(task);
        }