private void AutoOCR() { FileInfo imageFile = new FileInfo(queue.Dequeue()); IList <Image> imageList = ImageIOHelper.GetImageList(imageFile); if (imageList == null) { return; } try { this.statusForm.TextBox.BeginInvoke(new UpdateStatusEvent(this.WorkerUpdate), new Object[] { imageFile.FullName }); OCR ocrEngine = new OCR(); string result = ocrEngine.RecognizeText(imageList, -1, curLangCode); // postprocess to correct common OCR errors result = Processor.PostProcess(result, curLangCode); using (StreamWriter sw = new StreamWriter(Path.Combine(outputFolder, imageFile.Name + ".txt"), false, new System.Text.UTF8Encoding())) { sw.Write(result); } } catch (Exception e) { // Sets the UI culture to the selected language. Thread.CurrentThread.CurrentUICulture = new CultureInfo(selectedUILanguage); this.statusForm.TextBox.BeginInvoke(new UpdateStatusEvent(this.WorkerUpdate), new Object[] { " ** " + Properties.Resources.Cannotprocess + imageFile.Name + " **" }); Console.WriteLine(e.StackTrace); } }
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 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.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.Language, entity.Rect, 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); }
void PerformOCR(string[] args) { try { if (args[0] == "-?" || args[0] == "-help" || args.Length == 1 || args.Length == 3) { Console.WriteLine("Usage: vietocr imagefile outputfile [-l langcode]"); return; } FileInfo imageFile = new FileInfo(args[0]); FileInfo outputFile = new FileInfo(args[1]); if (!imageFile.Exists) { Console.WriteLine("Input file does not exist."); return; } string curLangCode; if (args.Length == 2) { curLangCode = "eng"; //default language } else { curLangCode = args[3]; } IList<Image> imageList = ImageIOHelper.GetImageList(imageFile); OCR ocrEngine = new OCR(); string result = ocrEngine.RecognizeText(imageList, curLangCode); // postprocess to correct common OCR errors result = Processor.PostProcess(result, curLangCode); using (StreamWriter sw = new StreamWriter(outputFile.FullName + ".txt", false, new System.Text.UTF8Encoding())) { sw.Write(result); } } catch (Exception e) { Console.WriteLine("Error: " + e.Message); } }
void PerformOCR(string[] args) { try { if (args[0] == "-?" || args[0] == "-help" || args.Length == 1 || args.Length == 3) { Console.WriteLine("Usage: vietocr imagefile outputfile [-l langcode]"); return; } FileInfo imageFile = new FileInfo(args[0]); FileInfo outputFile = new FileInfo(args[1]); if (!imageFile.Exists) { Console.WriteLine("Input file does not exist."); return; } string curLangCode; if (args.Length == 2) { curLangCode = "eng"; //default language } else { curLangCode = args[3]; } IList <Image> imageList = ImageIOHelper.GetImageList(imageFile); OCR ocrEngine = new OCR(); string result = ocrEngine.RecognizeText(imageList, curLangCode); // postprocess to correct common OCR errors result = Processor.PostProcess(result, curLangCode); using (StreamWriter sw = new StreamWriter(outputFile.FullName + ".txt", false, new System.Text.UTF8Encoding())) { sw.Write(result); } } catch (Exception e) { Console.WriteLine("Error: " + e.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 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.ClonedImages, entity.Lang, entity.Rect, worker, e); for (int i = 0; i < entity.ClonedImages.Count; i++) { if (worker.CancellationPending) { e.Cancel = true; break; } string result = ocrEngine.RecognizeText(((List<Image>)entity.ClonedImages).GetRange(i, 1), entity.Lang, entity.Rect, worker, e); worker.ReportProgress(i, result); // i is not really percentage } }
private void AutoOCR() { FileInfo imageFile; try { imageFile = new FileInfo(queue.Dequeue()); } catch { return; } this.statusForm.TextBox.BeginInvoke(new UpdateStatusEvent(this.WorkerUpdate), new Object[] { imageFile.FullName }); if (curLangCode == null) { this.statusForm.TextBox.BeginInvoke(new UpdateStatusEvent(this.WorkerUpdate), new Object[] { " ** " + Properties.Resources.selectLanguage + " **" }); //queue.Clear(); return; } IList<Image> imageList = ImageIOHelper.GetImageList(imageFile); if (imageList == null) { this.statusForm.TextBox.BeginInvoke(new UpdateStatusEvent(this.WorkerUpdate), new Object[] { " ** " + Properties.Resources.Cannotprocess + imageFile.Name + " **" }); return; } try { OCR ocrEngine = new OCR(); string result = ocrEngine.RecognizeText(imageList, curLangCode); // postprocess to correct common OCR errors result = Processor.PostProcess(result, curLangCode); using (StreamWriter sw = new StreamWriter(Path.Combine(outputFolder, imageFile.Name + ".txt"), false, new System.Text.UTF8Encoding())) { sw.Write(result); } } catch (Exception e) { // Sets the UI culture to the selected language. Thread.CurrentThread.CurrentUICulture = new CultureInfo(selectedUILanguage); this.statusForm.TextBox.BeginInvoke(new UpdateStatusEvent(this.WorkerUpdate), new Object[] { " ** " + Properties.Resources.Cannotprocess + imageFile.Name + " **"}); Console.WriteLine(e.StackTrace); } }