예제 #1
0
파일: RForm.cs 프로젝트: ondister/Recog
        void btn_recog_Click(object sender, EventArgs e)
        {
            if (this.pb_formimage.Image != null)
            {
                try
                {
                    this.ag_answers.pb_progress.Value   = 0;
                    this.ag_answers.pb_progress.Minimum = 0;
                    this.ag_answers.pb_progress.Step    = 1;
                    this.ag_answers.pb_progress.Maximum = this.ag_answers.AnswersCount;
                    this.ag_answers.btn_recog.Text      = "Идет распознавание...";
                    Recognizer r = new Recognizer(_ge, (Bitmap)this.pb_formimage.Image, _testid);
                    r.RecItem += new EventHandler(r_RecItem);
                    r.Prerecognize();

                    RecogResult rr = r.FindBestRecognize();

                    r.Recognize(rr.RangeWidth, rr.MinDisp);
                    _canvas = r.Canvas;
                    this.ag_answers.Answers = r.Canvas.Answers;
                    answs = r.Canvas.Answers;
                    r.Canvas.Answers.SelectTrueCell();
                    this.pb_formimage.Image = r.Canvas.CorrectedImage;

                    this.ag_answers.btn_recog.Text    = "Распознавание завершено";
                    this.ag_answers.pb_progress.Value = this.ag_answers.pb_progress.Maximum;
                    this.ag_answers.btn_recog.Enabled = false;
                    this.btn_scan.Enabled             = false;
                    if (r.Canvas.Answers.CountWithEmpty + r.Canvas.Answers.CountWithMiss > 15)
                    {
                        DialogResult dr = MessageBox.Show("Слишком много ошибок при распознавании.\nПричинами может являтся несоответствие бланка и выбранного теста или некорректные настройки яркости-контрастности сканера.\nБолее подробно читайте в справочной информации к программе.\nЖелаете пересканировать этот бланк?", "Проблемы распознавания", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                        if (dr == DialogResult.Yes)
                        {
                            RForm rf = new RForm(this._testid, this._humanid, _ge, _fe);
                            rf.WindowState = FormWindowState.Maximized;
                            this.Close();
                            rf.ShowDialog();
                        }
                    }

                    this.lb_status.Text       = "Итоги распознавания: вопросов без ответа: " + r.Canvas.Answers.CountWithEmpty.ToString() + ", ошибочных ответов: " + r.Canvas.Answers.CountWithMiss.ToString() + ", несколько ответов в вопросе: " + r.Canvas.Answers.CountWithDoubleCross.ToString();
                    this.lb_status.Visible    = true;
                    this.chb_onofdesc.Visible = true;
                }
                catch (Exception ex) { MessageBox.Show(ex.Message); this.Close(); }
            }
            else
            {
                MessageBox.Show("Нет изображения");
            }
        }
예제 #2
0
        private void OpenForm()
        {
            TestLoader tlk = new TestLoader(_fe);
            tlk.SetHumanID();
            _humanid = tlk.HumanID;
            if (_humanid!= 0)
            {
                _recogform = new RForm((int)_test, _humanid, _ge, _fe);
                _recogform.WindowState = FormWindowState.Maximized;
                _recogform.btn_addtobase.Click += new EventHandler(btn_addtobase_Click);
                _recogform.Show();

            }
        }
예제 #3
0
        private void OpenForm()
        {
            TestLoader tlk = new TestLoader(_fe);

            tlk.SetHumanID();
            _humanid = tlk.HumanID;
            if (_humanid != 0)
            {
                _recogform                      = new RForm((int)_test, _humanid, _ge, _fe);
                _recogform.WindowState          = FormWindowState.Maximized;
                _recogform.btn_addtobase.Click += new EventHandler(btn_addtobase_Click);
                _recogform.Show();
            }
        }
예제 #4
0
파일: RForm.cs 프로젝트: ondister/Recog
        void btn_recog_Click(object sender, EventArgs e)
        {
            if (this.pb_formimage.Image != null)
            {

                try
                {

                    this.ag_answers.pb_progress.Value = 0;
                    this.ag_answers.pb_progress.Minimum = 0;
                    this.ag_answers.pb_progress.Step = 1;
                    this.ag_answers.pb_progress.Maximum = this.ag_answers.AnswersCount;
                    this.ag_answers.btn_recog.Text = "Идет распознавание...";
                    Recognizer r = new Recognizer(_ge, (Bitmap)this.pb_formimage.Image, _testid);
                    r.RecItem += new EventHandler(r_RecItem);
                    r.Prerecognize();

                    RecogResult rr = r.FindBestRecognize();

                    r.Recognize(rr.RangeWidth, rr.MinDisp);
                    _canvas = r.Canvas;
                    this.ag_answers.Answers = r.Canvas.Answers;
                    answs = r.Canvas.Answers;
                    r.Canvas.Answers.SelectTrueCell();
                    this.pb_formimage.Image = r.Canvas.CorrectedImage;

                    this.ag_answers.btn_recog.Text = "Распознавание завершено";
                    this.ag_answers.pb_progress.Value = this.ag_answers.pb_progress.Maximum;
                    this.ag_answers.btn_recog.Enabled = false;
                    this.btn_scan.Enabled = false;
                    if (r.Canvas.Answers.CountWithEmpty + r.Canvas.Answers.CountWithMiss > 15)
                    {
                        DialogResult dr = MessageBox.Show("Слишком много ошибок при распознавании.\nПричинами может являтся несоответствие бланка и выбранного теста или некорректные настройки яркости-контрастности сканера.\nБолее подробно читайте в справочной информации к программе.\nЖелаете пересканировать этот бланк?", "Проблемы распознавания", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                        if (dr == DialogResult.Yes)
                        {
                            RForm rf = new RForm(this._testid, this._humanid, _ge,_fe);
                            rf.WindowState = FormWindowState.Maximized;
                            this.Close();
                            rf.ShowDialog();

                        }

                    }

                    this.lb_status.Text = "Итоги распознавания: вопросов без ответа: " + r.Canvas.Answers.CountWithEmpty.ToString() + ", ошибочных ответов: " + r.Canvas.Answers.CountWithMiss.ToString() + ", несколько ответов в вопросе: " + r.Canvas.Answers.CountWithDoubleCross.ToString();
                    this.lb_status.Visible = true;
                    this.chb_onofdesc.Visible = true;
                }
                catch (Exception ex) { MessageBox.Show(ex.Message); this.Close(); }
            }
            else { MessageBox.Show("Нет изображения"); }
        }
예제 #5
0
파일: PoollForm.cs 프로젝트: ondister/Recog
 private void cmd_begin_manual_Click(object sender, EventArgs e)
 {
     if (lst_manual.SelectedItems.Count != 0)
     {
         this.Close();
         TestLoader tlk = new TestLoader(_fe);
         tlk.SetHumanID();
         if (tlk.HumanID != 0)
         {
             RForm rf = new RForm(int.Parse(lst_manual.SelectedItems[0].SubItems[0].Text), tlk.HumanID, _ge, _fe);
             rf.WindowState = FormWindowState.Maximized;
             rf.ShowDialog();
             this.Close();
         }
     }
     else { MessageBox.Show("Необходимо выбрать тест"); }
 }