/// <summary> /// Perform OCR on pages of image. /// </summary> /// <param name="imageList"></param> /// <param name="index">-1 for all pages</param> /// <param name="rect">selection rectangle</param> void performOCR(IList <Image> imageList, int index, Rectangle rect) { try { if (this.toolStripCbLang.SelectedIndex == -1) { MessageBox.Show(this, Properties.Resources.selectLanguage, strProgName); return; } this.toolStripStatusLabel1.Text = Properties.Resources.OCRrunning; this.Cursor = Cursors.WaitCursor; this.pictureBox1.UseWaitCursor = true; this.textBox1.Cursor = Cursors.WaitCursor; this.toolStripBtnOCR.Enabled = false; this.oCRToolStripMenuItem.Enabled = false; this.oCRAllPagesToolStripMenuItem.Enabled = false; this.toolStripProgressBar1.Enabled = true; this.toolStripProgressBar1.Visible = true; this.toolStripProgressBar1.Style = ProgressBarStyle.Marquee; OCRImageEntity entity = new OCRImageEntity(imageList, index, rect, curLangCode); // Start the asynchronous operation. backgroundWorker1.RunWorkerAsync(entity); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
private void backgroundWorkerOcr_DoWork(object sender, DoWorkEventArgs e) { // Get the BackgroundWorker that raised this event. BackgroundWorker worker = sender as BackgroundWorker; OCRImageEntity entity = (OCRImageEntity)e.Argument; OCR <Image> ocrEngine = new OCRImages(); ocrEngine.PageSegMode = selectedPSM; ocrEngine.Language = entity.Language; // Assign the result of the computation to the Result property of the DoWorkEventArgs // object. This is will be available to the RunWorkerCompleted eventhandler. //e.Result = ocrEngine.RecognizeText(entity.ClonedImages, entity.Lang, entity.Rect, worker, e); IList <Image> images = entity.ClonedImages; for (int i = 0; i < images.Count; i++) { if (worker.CancellationPending) { e.Cancel = true; break; } string result = ocrEngine.RecognizeText(((List <Image>)images).GetRange(i, 1), entity.Inputfilename, entity.Rect, worker, e); worker.ReportProgress(i, result); // i is not really percentage } }
/// <summary> /// Perform OCR on pages of image. /// </summary> /// <param name="imageList"></param> /// <param name="index">-1 for all pages</param> /// <param name="rect">selection rectangle</param> void performOCR(IList <Image> imageList, int index, Rectangle rect) { try { if (this.toolStripCbLang.SelectedIndex == -1) { MessageBox.Show(this, resources.GetString("selectLanguage"), strProgName); return; } //if (this.pictureBox1.Image == null) //{ // MessageBox.Show(this, "Please load an image.", strProgName); // return; //} this.toolStripStatusLabel1.Text = resources.GetString("OCRrunning"); this.Cursor = Cursors.WaitCursor; this.pictureBox1.UseWaitCursor = true; this.textBox1.Cursor = Cursors.WaitCursor; this.toolStripBtnOCR.Enabled = false; this.oCRToolStripMenuItem.Enabled = false; this.oCRAllPagesToolStripMenuItem.Enabled = false; //OCRImageEntity entity = new OCRImageEntity(ImageIOHelper.GetImageList(imageFile), index, rect, curLangCode); OCRImageEntity entity = new OCRImageEntity(imageList, index, rect, curLangCode); // Start the asynchronous operation. backgroundWorker1.RunWorkerAsync(entity); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
private void backgroundWorkerOcr_DoWork(object sender, DoWorkEventArgs e) { // Get the BackgroundWorker that raised this event. BackgroundWorker worker = sender as BackgroundWorker; OCRImageEntity entity = (OCRImageEntity)e.Argument; OCR <string> ocrEngine = new OCRFiles(); IList <string> workingImageFiles = entity.ImageFiles; foreach (string workingImageFile in workingImageFiles) { tempFileCollection.AddFile(workingImageFile, false); // to be deleted when program exits } for (int i = 0; i < workingImageFiles.Count; i++) { if (worker.CancellationPending) { e.Cancel = true; break; } string result = ocrEngine.RecognizeText(((List <string>)workingImageFiles).GetRange(i, 1), entity.Language, worker, e); worker.ReportProgress(i, result); // i is not really percentage } }
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { // Get the BackgroundWorker that raised this event. BackgroundWorker worker = sender as BackgroundWorker; OCRImageEntity entity = (OCRImageEntity)e.Argument; OCR ocrEngine = new OCR(); // Assign the result of the computation to the Result property of the DoWorkEventArgs // object. This is will be available to the RunWorkerCompleted eventhandler. e.Result = ocrEngine.RecognizeText(entity.Images, entity.Index, entity.Lang, entity.Rect, worker, e); }
public void RecognizeTextTest() { string selectedImageFile = "samples/vietsample1.tif"; FileInfo imageFile = new FileInfo(selectedImageFile); IList<Image> imageList = ImageIOHelper.GetImageList(imageFile); entity = new OCRImageEntity(imageList, selectedImageFile, - 1, Rectangle.Empty, lang); OCRImages target = new OCRImages(); target.Language = entity.Language; IList<Image> images = entity.ClonedImages; string expected = "Đôi Mắt Người Sơn Tây"; string actual; actual = target.RecognizeText(images, selectedImageFile); Assert.IsTrue(actual.Contains(expected)); }
/// <summary> /// Perform OCR on pages of image. /// </summary> /// <param name="imageList"></param> /// <param name="index">-1 for all pages</param> /// <param name="rect">selection rectangle</param> void performOCR(IList<Image> imageList, int index, Rectangle rect) { try { if (this.toolStripCbLang.SelectedIndex == -1) { MessageBox.Show(this, Properties.Resources.selectLanguage, strProgName); return; } this.toolStripStatusLabel1.Text = Properties.Resources.OCRrunning; this.Cursor = Cursors.WaitCursor; this.pictureBox1.UseWaitCursor = true; this.textBox1.Cursor = Cursors.WaitCursor; this.toolStripBtnOCR.Enabled = false; this.oCRToolStripMenuItem.Enabled = false; this.oCRAllPagesToolStripMenuItem.Enabled = false; OCRImageEntity entity = new OCRImageEntity(imageList, index, rect, curLangCode); // Start the asynchronous operation. backgroundWorker1.RunWorkerAsync(entity); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
/// <summary> /// Perform OCR on pages of image. /// </summary> /// <param name="imageList"></param> /// <param name="index">-1 for all pages</param> /// <param name="rect">selection rectangle</param> void performOCR(IList<Image> imageList, int index, Rectangle rect) { try { if (this.toolStripCbLang.SelectedIndex == -1) { MessageBox.Show(this, resources.GetString("selectLanguage"), strProgName); return; } //if (this.pictureBox1.Image == null) //{ // MessageBox.Show(this, "Please load an image.", strProgName); // return; //} this.toolStripStatusLabel1.Text = resources.GetString("OCRrunning"); this.Cursor = Cursors.WaitCursor; this.pictureBox1.UseWaitCursor = true; this.textBox1.Cursor = Cursors.WaitCursor; this.toolStripBtnOCR.Enabled = false; this.oCRToolStripMenuItem.Enabled = false; this.oCRAllPagesToolStripMenuItem.Enabled = false; //OCRImageEntity entity = new OCRImageEntity(ImageIOHelper.GetImageList(imageFile), index, rect, curLangCode); OCRImageEntity entity = new OCRImageEntity(imageList, index, rect, curLangCode); // Start the asynchronous operation. backgroundWorker1.RunWorkerAsync(entity); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
/// <summary> /// Perform OCR on pages of image. /// </summary> /// <param name="imageList"></param> /// <param name="index">-1 for all pages</param> /// <param name="rect">selection rectangle</param> void performOCR(IList<Image> imageList, string inputfilename, int index, Rectangle rect) { try { if (curLangCode.Trim().Length == 0) { MessageBox.Show(this, Properties.Resources.selectLanguage, strProgName); return; } this.toolStripStatusLabel1.Text = Properties.Resources.OCRrunning; this.Cursor = Cursors.WaitCursor; this.pictureBox1.UseWaitCursor = true; this.textBox1.Cursor = Cursors.WaitCursor; this.toolStripBtnOCR.Enabled = false; this.oCRToolStripMenuItem.Enabled = false; this.oCRAllPagesToolStripMenuItem.Enabled = false; this.toolStripProgressBar1.Enabled = true; this.toolStripProgressBar1.Visible = true; this.toolStripProgressBar1.Style = ProgressBarStyle.Marquee; OCRImageEntity entity = new OCRImageEntity(imageList, inputfilename, index, rect, curLangCode); entity.ScreenshotMode = this.screenshotModeToolStripMenuItem.Checked; // Start the asynchronous operation. backgroundWorkerOcr.RunWorkerAsync(entity); } catch (Exception ex) { Console.WriteLine(ex.Message); } }