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("Нет изображения"); } }
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); }
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; }
public testresult ResultsToBase(RecogCore.AnswerGrid.Answers Answers) { throw new Exception("Для этого теста не существует бланка"); }
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; }
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("Нет изображения"); } }