Esempio n. 1
0
        /// <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);
            }
        }
Esempio n. 2
0
        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
            }
        }
Esempio n. 3
0
        /// <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);
            }
        }
Esempio n. 4
0
        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
            }
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
 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));
 }
Esempio n. 7
0
File: GUI.cs Progetto: ADTC/VietOCR
        /// <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);
            }
        }
Esempio n. 8
0
File: GUI.cs Progetto: ADTC/VietOCR
        /// <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);
            }
        }
Esempio n. 9
0
        /// <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);
            }
        }