Exemplo n.º 1
0
        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("Нет изображения");
            }
        }
Exemplo n.º 2
0
        public testresult ResultsToBase(RecogCore.AnswerGrid.Answers Answers)
        {
            NPNAnswers _answersforbase = new NPNAnswers(_ge);

            for (int i = 0, count = Answers.Count; i < count; i++)
            {
                _answersforbase.Add(Answers[i].SelectedCellIndex(), Answers[i].ContentDescription, "", Answers[i].Id, "");
            }
            XmlSerializer mySerializer = new XmlSerializer(typeof(NPNAnswers));

            StringWriter myWriter = new StringWriter();

            mySerializer.Serialize(myWriter, _answersforbase);

            testresult t = testresult.Createtestresult(0, _humanid, DateTime.Now, (int)EnumPTests.NPNA, myWriter.ToString(), "manual");

            _fe.testresults.AddObject(t);
            _fe.SaveChanges();

            myWriter.Close();
            return(t);
        }
Exemplo n.º 3
0
        private void RecogForm_Load(object sender, EventArgs e)
        {
            answs = new Answers();
            testsparam t = _ge.testsparams.First(tp => tp.idt == _testid);

            t.answersparams.Load();
            foreach (answersparam ap in t.answersparams)
            {
                Answer aga = new Answer();
                aga.Id = ap.num.Value;
                ap.cellsparams.Load();
                foreach (cellsparam cp in ap.cellsparams)
                {
                    Cell c = new Cell();
                    c.ContentDescription = cp.description.Trim();
                    aga.Cells.Add(c);
                }
                answs.Add(aga);
            }
            human h = _fe.humans.First(hh => hh.idh == _humanid);

            this.Text = "Распознавание бланка: " + t.description + " для " + h.secondname + " " + h.firstname;
        }
Exemplo n.º 4
0
 public testresult ResultsToBase(RecogCore.AnswerGrid.Answers Answers)
 {
     throw new Exception("Для этого теста не существует бланка");
 }
Exemplo n.º 5
0
        private void RecogForm_Load(object sender, EventArgs e)
        {
            answs = new Answers();
            testsparam t = _ge.testsparams.First(tp => tp.idt == _testid);
            t.answersparams.Load();
            foreach (answersparam ap in t.answersparams)
            {
                Answer aga = new Answer();
                aga.Id = ap.num.Value;
                ap.cellsparams.Load();
                foreach (cellsparam cp in ap.cellsparams)
                {
                    Cell c = new Cell();
                    c.ContentDescription = cp.description.Trim();
                    aga.Cells.Add(c);
                }
                answs.Add(aga);

            }
            human h = _fe.humans.First(hh => hh.idh == _humanid);

            this.Text = "Распознавание бланка: " + t.description + " для " + h.secondname + " " + h.firstname;
        }
Exemplo n.º 6
0
        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("Нет изображения"); }
        }