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("Нет изображения"); } }
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(); } }
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(); } }
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("Нет изображения"); } }
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("Необходимо выбрать тест"); } }